2011-06-03 83 views
0

我有一個更新面板中的gridview也是我的下拉列表。從下拉列表的觸發器中,我使用所選值刷新了我的gridview。所有這一切工作正常。問題是我也在頁面上顯示gridview行數,該頁面也在updatepanel內。更新似乎正在發生,一個選擇太晚了。GridView RowCount後期更新updatepanel

protected void Drop_Change(object sender, EventArgs e) 
{ 
    String Value = AjaxDrop.SelectedValue; 
    GridView1.SelectParameters["Target"].DefaultValue=Value; 
    RowCount.InnerText = GridView1.Rows.Count.ToString(); 
} 

我認爲其背後發生的一個選擇,因爲參數更新gridview的行數爲時已晚,該行計數值有,什麼是圍繞一個工作參數傳遞後獲得的實際值。只有我能想到的方式是使用JavaScript,我想知道這是否會起作用。我希望的解決方案是將它全部保留在服務器端。

回答

1

當你調用它的時候,GridView並沒有完成它的數據綁定,因此這個值是無效的。將RowCount.InnerText更新移動到DataBinding事件(例如Page_OnPreRender)之後執行的某處,或者在更新行計數之前強制DataBinding發生。

值得注意的是,如果您使用的是GridView分頁,GridView.Rows.Count不是可靠的信息源 - 因爲這將成爲一頁中的行數,即使查詢返回的行數更多。

+0

我把它扔到一個Page_PreRender方法中,仍然得到相同的行爲 – Eric 2011-06-03 17:25:53

+0

你是對的,在我強制gridview數據綁定之前,它的工作.thx – Eric 2011-06-03 17:28:01