Asp.net ModelBinding-使用按钮单击事件触发无参数的gridview selectmethod

Asp.net ModelBinding-使用按钮单击事件触发无参数的gridview selectmethod,asp.net,Asp.net,我有一个带有两个ascx控件的aspx页面。第一个ascx控件包含文本框和下拉列表,允许用户选择过滤器参数。第二个控件有一个gridview来显示查询结果。cs文件具有gridview选择方法来调用get数据。我注意到,在初始加载时,会调用gridview选择方法。如果选择了任何过滤器控件,也将调用gridview选择方法 问题是,在初始加载之后,如果在没有选择过滤器参数的情况下单击搜索按钮,则不会调用gridview选择方法。没有对gridview选择方法的直接调用。它在gridview标记语

我有一个带有两个ascx控件的aspx页面。第一个ascx控件包含文本框和下拉列表,允许用户选择过滤器参数。第二个控件有一个gridview来显示查询结果。cs文件具有gridview选择方法来调用get数据。我注意到,在初始加载时,会调用gridview选择方法。如果选择了任何过滤器控件,也将调用gridview选择方法

问题是,在初始加载之后,如果在没有选择过滤器参数的情况下单击搜索按钮,则不会调用gridview选择方法。没有对gridview选择方法的直接调用。它在gridview标记语言中指定如下

我在gridview中使用modelbinding,并在标记aspx文件中声明selectmethod

我的问题是,当我在没有选择过滤参数的情况下单击按钮时,如何让gridview select方法获得调用。是的,即使用户没有选择,我也希望它进行另一次提取

谢谢你的帮助

<asp:GridView ID="gvCases" runat="server"
                ItemType="OFAC.FOIA.BusinessEntities.NHObjects.VW_INBOX" 
                DataKeyNames="FOIA_Number"
                AutoGenerateColumns="false"
                SelectMethod="gvCases_GetData"
                OnPreRender="gvCases_PreRender"
                Width="100%">

我很想知道这个问题的真正答案,但我最后做的是在页面上添加一个HiddenField,SelectMethod使用控件值提供程序拉入该字段,然后只要在需要强制刷新时更改该值即可。在我的例子中,我使用了一个GUID,这样我就不必回调值,转换它并增加它

protected void ForceGridViewRefresh()
{
    ForceRefresh.Value = Guid.NewGuid().ToString();           
}
关于我的选择方法:

public IEnumerable<TestViewModel> GetData([Control("ForceRefresh")] Guid? forceRefresh)
{
    ...
}
公共IEnumerable GetData([Control(“ForceRefresh”)]Guid?ForceRefresh) { ... }
到目前为止,这似乎是“有效的”。

您可以使用GridID.DataBind()并立即调用GridID\u GetData()方法

工作,但就像@NFrank说的,我真的很想知道真正的答案。我是哈奇。@D.Dubya对我也很有用。为什么会这样?微软真的不鼓励这样做吗?