我有一个绑定到对象数据源的网格视图。有分页,它工作正常。现在页面上还有一个搜索框,如果有人点击搜索按钮我想将startRow参数重置为0,但是不起作用:当前页面传递给数据源的Select方法。
<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 方法。