2

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

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

我在我的 gridview 中使用模型绑定,并在我的标记 aspx 文件中声明了 selectmethod。

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

谢谢你的帮助。

<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%">
4

2 回答 2

0

我很想知道这个问题的真正答案,但我最终做的是在 SelectMethod 使用 Control Value Provider 拉入的页面上添加一个 HiddenField,然后只要我想强制刷新就更改该值. 在我的情况下,我使用了 GUID,因此我不必拉回值、转换它并增加它。

protected void ForceGridViewRefresh()
{
    ForceRefresh.Value = Guid.NewGuid().ToString();           
}

在我的选择方法上:

public IEnumerable<TestViewModel> GetData([Control("ForceRefresh")] Guid? forceRefresh)
{
    ...
}

到目前为止,这似乎是“工作”。

于 2013-06-07T18:09:22.880 回答
0

您可以使用 GridID.DataBind() ,它会立即调用 GridID_GetData() 方法。

于 2014-11-07T05:20:10.673 回答