我有一个带有两个ascx控件的aspx页面。第一个ascx控件包含文本框和下拉列表,以允许用户选择过滤器参数。第二个控件有一个gridview来显示查询结果。 cs文件具有gridview select方法来调用get数据。我注意到在初始加载时,会调用gridview select方法。如果选择了任何过滤器控件,则还会调用gridview select方法。
这是问题,在初始加载之后,如果我点击没有选择过滤器参数的搜索按钮,则不会调用gridview select方法。没有直接调用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%">
答案 0 :(得分:0)
我很想知道这个问题的真正答案,但我最终做的是在SelectMethod用控制值提供程序引入的页面上添加一个HiddenField,然后只要我想要更改值强行刷新。在我的情况下,我使用GUID所以我不必拉回值,转换它并增加它。
protected void ForceGridViewRefresh()
{
ForceRefresh.Value = Guid.NewGuid().ToString();
}
在我的选择方法上:
public IEnumerable<TestViewModel> GetData([Control("ForceRefresh")] Guid? forceRefresh)
{
...
}
到目前为止,这似乎是“有效”。
答案 1 :(得分:0)
你可以使用GridID.DataBind(),它会立即调用GridID_GetData()方法。