J'ai un gridview lié à un objectdatasource. Il y a la pagination et ça marche bien. Maintenant, il ya aussi une boîte de recherche sur la page, et si quelqu'un clique sur le bouton de recherche je veux réinitialiser le paramètre startRow à 0, mais cela ne fonctionne pas: la page en cours est passée à la méthode Select de la source de données.Comment réinitialiser la valeur du paramètre 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>
et dans le codebehind j'essaie de faire:
protected void btnSearch_Click(object sender, EventArgs e)
{
dataSource.SelectParameters["startRow"].DefaultValue = "0";
gvCars.DataBind();
}
mais la méthode get du ObjectDataSource est appelé avec tout ce que l'utilisateur page a été au moment où il a cliqué sur le searchbutton.