次のasp.netページがあります。
- UpdatePanel
- ObjectDataSource
- GridView
更新パネルは次のようになります。
<asp:UpdatePanel ID="MyUpdatePanel" runat="server">
<ContentTemplate>
<asp:DropDownList ID="MyDropDownList" runat="server"
AutoPostBack="True">
...
</asp:DropDownList>
<asp:TextBox ID="MyTextBox" runat="server" />
<asp:Button ID="MySubmitButton" runat="server" text="Submit" />
</ContentTemplate>
</asp:UpdatePanel>
ユーザーがドロップダウン リストのオプションを選択すると、テキスト ボックスで何かが発生し、有効または無効になったり、(選択したオプションに応じて) 入力または空になったりします。この変更は、ページの残りの部分には影響しません (そのため、UpdatePanel 内に配置しました)。
さて、更新パネルの外に、ページの残りの部分があります。このような:
<asp:ObjectDataSource ID="MyObjectDataSource" runat="server"
SelectMethod="MySelect"
TypeName="MyType">
<SelectParameters>
<asp:ControlParameter Name="Parameter1" Type="String" ControlID="MyDropDownList" PropertyName="SelectedValue" />
<asp:ControlParameter Name="Parameter2" Type="String" ControlID="MyTextBox" PropertyName="Text" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="MyGridView" runat="server"
AutoGenerateColumns="False"
DataKeyNames="MY_ID"
DataSourceID="MyObjectDataSource">
<Columns>
....
</Columns>
</asp:GridView>
繰り返しますが、ObjectDataSource と GridView は UpdatePanel の外側にあります。
しかし、ドロップダウン リストでオプションを選択するたびに、MyObjectDataSource の SelectMethod が呼び出されます。
私が間違っていることは何ですか?
よろしくお願いします。
アップデート:
MyObjectDataSource と MyGridView を SEPARATE 更新パネルに配置しようとしましたが、ページ敷居は同じ動作をしています :-(