2011-10-18 4 views
0

데이터리스트의 사용자 정의 페이징을하고 있습니다. 아래 메소드는 필요한 페이지 번호를 가져옵니다. 내 문제는 디버그 중에 클릭 이벤트가 발생하지 않는다는 것입니다. 문제가있는 사람은 누구든지 전화를 걸 수 있습니다.asp.net의 데이터리스트 사용자 정의 페이징

private void BindPageNumbers(int TotalRecords) 
      { 

       int counter = 0; 
       for(int i=0;i<TotalRecords;i=i+5) 
       { 
        counter=counter+1; 
        LinkButton lnk = new LinkButton(); 
        lnk.Click += new EventHandler(lbl_click); 
        lnk.ID = "lnkPage" + (counter).ToString(); 
        lnk.Text = (counter).ToString(); 
        pages.Controls.Add(lnk); 
        Label spacer = new Label(); 
        spacer.Text = "&nbsp;"; 
        pages.Controls.Add(spacer); 
       }     
      } 
void lbl_click(object sender, EventArgs e) 
     { 
      LinkButton lnk = sender as LinkButton; 
      int Currentpage = int.Parse(lnk.Text); 
      ListDataBinding_paging(2, this.Days, (Currentpage-1)*5, 5); 
     } 

여기서 "ListDataBinding_paging"은 데이터 목록을 채우는 방법입니다.

답변

0

페이지 링크 단추를 동적으로 생성하고 있습니다. 따라서 라이프 사이클 초기에 모든 포스트 백에서 다시 만들어야합니다. 나는 게시물 이벤트 데이터가 처리되고 따라서 클릭 이벤트가 생성되지 않은 후에 BindPageNumbers이 호출되는 것으로 의심됩니다.

BindPageNumberspage_load으로 지정하면 수명주기 초기에 단추를 만들 수 있습니다. 총 레코드 수를 뷰 상태로 저장할 수 있습니다. page_load 다음 도움이 LoadViewState 재정의를 시도하지 않는 경우 - 기본 구현을 호출 한 후 코드를 넣어 - 뭔가를

보호 재정의 무효 LoadViewState (savedState 객체) { base.LoadViewState (savedState)와 같은; BindPageNumbers ((int) ViewState [ "TotalRecords"]); }

관련 문제