【发布时间】:2016-10-26 20:24:15
【问题描述】:
我写过类似的代码
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 prevtennumber = lastnumber - 10;
for (int i=prevtennumber ; i <= pagecount; i++)
{
if (i < prevtennumber)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex));
if (i == 1)
{
lnkprev.Visible = false;
}
}
Session["lastnumber"] = prevtennumber;
Session["pagecount"] = pagecount;
rptPager.DataSource = pages;
rptPager.DataBind();
}
}
protected void lnknext_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 nexttennumber = lastnumber + 10;
for (int i = lastnumber; i <= pagecount; i++)
{
if (i < nexttennumber)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex));
if (i == pagecount)
{
lnknext.Visible = false;
}
}
Session["lastnumber"] = nexttennumber;
Session["pagecount"] = pagecount;
rptPager.DataSource = pages;
rptPager.DataBind();
}
}
我正在使用页码填充转发器,该页码用于网格视图中的分页。实际上,我首先必须显示前十个数字。当用户单击下一步按钮时,页码应从 10 到 20 开始,依此类推。 现在下一个按钮工作正常。上一个按钮无法正常工作。 请帮忙!!!
【问题讨论】:
-
这是一个糟糕的分页设计——你会在会话中保存下一页、页码等等吗?你有没有想过一个用户可以同时打开多个页面。
-
是的,你是对的!!!我是否将它们存储在 cookie 中
-
cookie 是最差的,和 session 一样——你用参数把它保存在它自己的 url 上
-
还有其他方法吗,我们用url很难。因为在整个项目中都使用了分页控件
-
您只有 2 个选项 - 要么发布要么获取。
标签: c# asp.net c#-4.0 pagination