2016-05-04 26 views
0

私は最後の数は45であるならば、それは今40 41 42 43 44 45 を生成ようにそれが動作リストのアイテムページ回避負の数

protected void lnkprev_Click(object sender, EventArgs e) 
    { 
     List<ListItem> pages = new List<ListItem>(); 
     int pagecount = Convert.ToInt32(Session["pagecount"].ToString()); 
     int lastnumber = Convert.ToInt32(Session["lastnumber"].ToString()); 

     int limit = lastnumber - 5; 
     for (int i = limit; i <= pagecount; i++) 
     { 
      if (i < lastnumber && i > 1) 
      { 
       pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex)); 
      } 
      else 
      { 
       rptPager.DataSource = Session["orignalpages"]; 
       rptPager.DataBind(); 
      } 
     } 

     Session["lastnumber"] = limit; 
     Session["pagecount"] = pagecount; 

     Session["pages"] = pages; 

     rptPager.DataSource = pages; 
     rptPager.DataBind(); 
    } 

に番号を追加するためのイベントの下に使用しています最後の数字が6または< 5または負の数であっても、それはSession ["orignalpages"]とリピータをバインドする必要があります。 1 2 3 4 5 ...上記のコードはこのようには機能しません。リストアイテムに負の数を追加します。 私を助けてください!

+0

整数を後で再び整数に変換するために文字列として保存するのはなぜですか? –

答えて

1

こんにちはは、たぶん私はあなたの質問をmisunderstingていますが、あなたは、あなたのロジックがあるべきではありませんif last number contains 6 or < 5 or even negative numbers, it should bind repeater with Session["orignalpages"];

のように言ったに明示的に設定しなければならなかった1その後、低くなっています -

  if (lastnumber <= 6) 
      { 
       for (int i = limit; i <= pagecount; i++) 
       { 
        pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex)); 
       } 
      } 
      else 
      { 
       rptPager.DataSource = Session["orignalpages"]; 
       rptPager.DataBind(); 
      } 
1

あなたの制限はあなたが1

protected void lnkprev_Click(object sender, EventArgs e) 
{ 
    List<ListItem> pages = new List<ListItem>(); 
    int pagecount = Convert.ToInt32(Session["pagecount"].ToString()); 
    int lastnumber = Convert.ToInt32(Session["lastnumber"].ToString()); 

    int limit = lastnumber - 5; 

    ////////////////////////////////////////////////////// 
    if (limit < 1) limit = 1; //set the limit explicit to 1 
    ////////////////////////////////////////////////////// 

    for (int i = limit; i <= pagecount; i++) 
    { 
     if (i < lastnumber && i > 1) 
     { 
      pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex)); 
     } 
     else 
     { 
      rptPager.DataSource = Session["orignalpages"]; 
      rptPager.DataBind(); 
     } 
    } 

    Session["lastnumber"] = limit; 
    Session["pagecount"] = pagecount; 

    Session["pages"] = pages; 

    rptPager.DataSource = pages; 
    rptPager.DataBind(); 
} 
+0

最後の数字が1または5未満になると空白の値が表示されます – Nida

+0

@ Nidaおそらく、あなたはあなたの出力を作成するASPXからあなたのコードを投稿することができますか? – Pazi01