2013-04-22 87 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

相關問題