2013-04-22 60 views
2

我有一个aspx页面有两个ascx控件。第一个ascx控件包含文本框和下拉列表,允许用户选择过滤器参数。第二个控件有一个gridview来显示查询结果。 cs文件具有gridview select方法来调用get数据。我注意到,在初始加载时,gridview select方法被调用。如果选择了任何筛选器控件,则也会调用gridview选择方法。ModelBinding - 触发gridview selectmethod与按钮单击事件没有参数

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

我在我的gridview中使用modelbinding,并在我的标记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%"> 

回答

0

我很想知道真正的这个问题的答案,但我落得这样做是为了使SelectMethod与控制值提供商拉在页面上添加一个HiddenField,然后只需更改值每当我想强制刷新。在我的情况下,我使用了一个GUID,所以我不必拉回该值,将其转换并递增。

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

在我的选择方法:

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

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

0

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

+0

工程,但像@NFrank说,我真的想知道真正的答案。这是hackey。 – 2015-01-20 19:58:30

+0

@ D.Dubya也适合我。这为什么这个哈克?这实际上是否让微软沮丧? – Marcel 2015-05-18 10:47:26

相关问题