我做了个分也,我的当前页是用ViewState["pager"]然后/public int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}
这样,但是只要一刷新就回到第一页了,我用 private static int Pager;这个呢,你不管怎么跳,然后回到你先前的页面的时候你走的时候是第几页他它还是第几页,请问有什么别的方法吗?我要的是刷新的时候是显示的是第几页刷新后就是第几页,然后跳到别的页面回来的时候是第一页
一刷新就回第一页是肯定的。因为viewstate是只保留当前页的数据,你刷新就是重新请求页面了,viewstate当然就被清空了。
如果要“刷新的时候是显示的是第几页刷新后就是第几页”,这个的话,用session或者cookies。
至于“然后跳到别的页面回来的时候是第一页”这句我不太看的懂。
这个
public int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}
修改下:
public int Pager
{
get
{
object obj=ViewState["Page"];
if(obj==null ) return 0;
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}
并且在处理翻页的时候要 给定当前页面值赋值给Pager.
如果你已经这样处理了。可能是在加载事件中所涉及的代码中有给Pager赋值为0的代码
用另一个 ViewState 或全域变量,暂存 GridView 目前所在的页码
//暂存 GridView 目前所在的页码
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
//GridView1.DataBind();
ViewState["pager"] = e.NewPageIndex;
}
}
//取出 ViewState["pager"] 中暂存的页码,重新设置给 GridView
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (ViewState["pager"] != null)
{
GridView1.PageIndex = (int)ViewState["pager"];
//GridView1.DataBind();
}}
public string Pager //想要保持状态得这样写。
{
get
{
object o = ViewState["Pager"];
if (o != null)
{
return (string)o;
}
return string.Empty;
}
set
{
ViewState["Pager"] = value;
}
}
一楼的说的对