2016-06-08 37 views
1

我有一個gridview有一週的幾天的列。 我在頁面的第一個負載上運行此代碼,以便日期正確。查看狀態無法正常工作Asp.Net c#

if (!IsPostBack) {//my public function to set the dates, It works as expected. 
      setUpGrid(); 
       } 

然後我有一個按鈕,點擊後會顯示下一週的第7天。這一切運作以及這裏是代碼

protected void NWeeks_Click (object sender, EventArgs e) 
     {DateTime hd2 = Convert.ToDateTime (gvappts.Columns [2].HeaderText); 
      if (ViewState ["hd2"] == null) 
       {ViewState ["hd2"] = 0;} 
      ViewState ["hd2"] = ((int)ViewState ["hd2"]) + 7; 
      gvappts.Columns [2].HeaderText = hd2.AddDays ((int)ViewState["hd2"]).ToString ("ddd dd MMM", 
      CultureInfo.CreateSpecificCulture ("en-US")); 
     } 

我的問題是,你必須按一下按鈕兩次前,將關火下週計算。我認爲ViewState會照顧這一點,但不知道我出錯的地方。

在先進的感謝

回答

1

我在這看一段時間,因爲我正與一個GridView處理,以刷新的HeaderText你也有數據綁定在GridView後實現的。添加一個簡單的GridviewName.DataBind();我的功能解決了我的問題。

感謝您的幫助!

0

我想你可以將代碼移到Page_LoadComplete事件,以確保當setUpGrid()被調用所有控件加載。

退房ASP.Net Page Life Cycle

void Page_LoadComplete(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     setUpGrid(); 
    } 
}