2016-06-08 5 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

확인합니다. 간단한 GridviewName.DataBind() 추가; 내 기능에 내 문제가 해결되었습니다.

도움 주셔서 감사합니다.

0

에서

덕분에 나는 당신이 setUpGrid()가 호출 될 때 모든 컨트롤을로드 보장하기 위해 Page_LoadComplete 이벤트에 코드를 움직일 수 상상한다.

나는 잠시 내가 HeaderText에 새로 고침하기 위해의 GridView를 처리하고 있기 때문에 당신은 또한 GRIDVIEW을 데이터 바인딩해야한다는 동안보고 후 실현 밖으로 ASP.Net Page Life Cycle

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