2011-10-18 10 views
0

私はdatalist.Belowメソッドのカスタムページングをして、必要なページ番号を取得しています。 私の問題は、デバッグ中にクリックイベントが発生していないことです。 問題のある人は誰でも電話できます。datalist 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

ページリンクボタンを動的に作成しています。ライフサイクルの早い段階で、ポストバックごとに再作成する必要があります。投稿のイベントデータが処理された後にclickイベントが生成されないと、BindPageNumbersが呼び出されている可能性があります。

BindPageNumberspage_loadで呼び出し、ライフサイクルの早い段階でボタンを作成することをお勧めします。総レコード数をビューステートに格納できます。基本実装への呼び出しの後にコードを配置 - - page_loadLoadViewStateオーバーライド試行しても解決できない場合

保護されたオーバーライドボイドLoadViewState(savedStateオブジェクト) { base.LoadViewState(savedState)のようなものを。 BindPageNumbers((int)ViewState ["TotalRecords"]); }

関連する問題