我有一個綁定到objectdatasource的gridview。有分頁,它工作正常。現在頁面上還有一個搜索框,如果有人點擊搜索按鈕,我想將startRow參數重置爲0,但它不起作用:當前頁面被傳遞給數據源的Select方法。如何重置ASP.NET ObjectdataSource參數的值
<asp:GridView runat="server" ID="gvCars"
AutoGenerateColumns="false"
DataKeyNames="Id"
AllowPaging="true" AllowSorting="true"
PageSize="2" DataSourceID="dataSource"
OnDataBound="GridView_DataBound" OnRowCommand="gvCars_RowCommand" OnRowDataBound="gvCars_RowDataBound">
<Columns>
...
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="dataSource" EnablePaging="true" runat="server"
SelectCountMethod="GetCount"
MaximumRowsParameterName="PageSize"
StartRowIndexParameterName="StartRow" SortParameterName="SortExpression"
SelectMethod="Get"
TypeName="DataSource">
<SelectParameters>
<asp:Parameter Name="startRow" />
<asp:Parameter Name="pageSize" />
<asp:Parameter Name="sortExpression" />
<asp:ControlParameter Name="searchTerm" ControlID="txtSearchTerm" PropertyName="Text" />
</SelectParameters>
</asp:ObjectDataSource>
,並在代碼隱藏我嘗試這樣做:
protected void btnSearch_Click(object sender, EventArgs e)
{
dataSource.SelectParameters["startRow"].DefaultValue = "0";
gvCars.DataBind();
}
但ObjectDataSource控件的get方法被調用任何網頁的用戶是在他點擊搜索按鈕的那一刻。