Я использую событие ниже для добавления чисел на страницы элементов списка

    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();
    }

Это работает так, как если бы последнее число было 45, тогда оно генерирует 40 41 42 43 44 45. Теперь проблема, если последнее число содержит 6 или <5 или даже отрицательные числа, он должен связать повторитель с Session ["orignalpages"]; который содержит 1 2 3 4 5 ... Приведенный выше код не работает. Он добавляет отрицательные числа к элементам списка. Пожалуйста, помогите мне !!!

0
Nida 4 Май 2016 в 08:39

2 ответа

Лучший ответ

Привет, возможно, я неправильно понимаю твой вопрос, но ты сказал как if last number contains 6 or < 5 or even negative numbers, it should bind repeater with Session["orignalpages"];

Тогда не должна ваша логика быть такой: -

            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
KanisXXX 4 Май 2016 в 06:36

Ваш предел ниже 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();
}
1
Pazi01 4 Май 2016 в 05:44