由于在编辑结束后,返回当前页面,所以启动AspNetPager分页控件的url分页功能,但是通过筛选数据后,url分页功能有个bug,每次点击切换页面后,总是促发页面回滚,IsPostBack=true,导致viewstate丢失。请问如何解决这个问题?网上的说法:http://blog.csdn.net/greymouseyu/archive/2009/03/22/4015653.aspx
但感觉到说不清楚
但感觉到说不清楚
去吴旗娃的网站上问问去吧。。看有什么好的方法。。如果是这样。。可以考虑存到session中
100W数据 每页10行 翻页 只需瞬间
而且 支持各种定位 多写 就好了 锻炼问题
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //url分页,ViewState 总被重置为sql,搜索数据又变为全部数据
{
ViewState["sql"] = sql; //保存查询语句
}
}//搜索按钮
protected void btnSearch_Click(object sender, EventArgs e)
{
if (ViewState["sql"]=null)
{
ViewState["sql"] = sql;
} if (txtName.Text != "")
{
ViewState["sql"] += " where uname like '" + txtName.Text + "'";//保存查询语句
} //绑定数据。。}这样问题就来了,AspNetPager 启用了url分页后,点击切换页码按钮后,IsPostBack=true总是成立,所以ViewSate总被重置为初始的sql。
if (!IsPostBack)
IsPostBack=true总是成立??楼主了解这句代码的意思吗?意思和你说的正好相反,IsPostBack不是true,而是false。这不是AspNetPager的bug,而是你不了解它的工作原理。
if (!IsPostBack) 总是成立 ,使用Session不是一样的被重置,因为肯定要在第一次加载页码事件中给Session赋初始值的。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //url分页后总是为true,ViewState 总被重置为sql,搜索数据又变为全部数据
{
ViewState["sql"] = sql; //保存查询语句
}
}//搜索按钮
protected void btnSearch_Click(object sender, EventArgs e)
{
if (ViewState["sql"]==null)
{
ViewState["sql"] = sql;
} if (txtName.Text != "")
{
ViewState["sql"] += " where uname like '" + txtName.Text + "'";//保存查询语句
} //绑定数据。。}因为url分页后,url发生改变,页码变成第一次加载了,所以if (!IsPostBack)总为true
而用Button之类的服务端控件触发的PageSelectedIndex_Changed事件,以及DataBind()就不一样了
而Session可以解决这个问题。