ModelBinding - 使用按钮单击事件触发gridview selectmethod,不带参数

时间:2013-04-22 15:16:46

标签: asp.net

我有一个带有两个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%">

2 个答案:

答案 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()方法。