Я создал простой ASP Gridview с ObjectDataSource
, чтобы получать данные из моей базы данных и отображать их в GridView
. ObjectDataSource
выглядит так:
<asp:ObjectDataSource
ID="ObjectDataSourceTest"
runat="server"
SelectMethod="GetTestData"
TypeName="DataManager"
<SelectParameters>
<asp:Parameter Name="sortExpression" Type="String" />
<asp:ControlParameter ControlID="DropDownListXY" Name="xyFilter" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
ControlParameter
- это DropDownList
, который используется для фильтрации моих GridView
. Он находится внутри <asp:Panel>
и выглядит так:
<div class="grid-100">
<asp:DropDownList ID="DropDownListXY" OnSelectedIndexChanged="DropDownListXY_SelectedIndexChanged" DataSourceID="ObjectDataSourceApplikationTyp" runat="server" DataValueField="test_guid" DataTextField="test" AppendDataBoundItems="true" AutoPostBack="true">
<asp:ListItem Text="-- all --" Value=""></asp:ListItem>
</asp:DropDownList>
</div>
Моя проблема в том, что всякий раз, когда я выбираю что-то из DropDownList
, оно вызывает SelectMethod
. Я попытался отключить AutoPostBack
на своем DropDownList
, но PostBack важен для других функций, поэтому я не могу оставить его на AutoPostBack="false"
, он должен быть на True
все время.
Мой вопрос: как я могу предотвратить это? Я хочу оставить AutoPostBack
на DropDownList
. Но мой SelectMethod не должен срабатывать одновременно. Я хочу иметь возможность контролировать, когда я фильтрую свои данные с помощью кнопки поиска.