标题阐述的不清楚,在说明一下。
如 DataGrid 绑定数据更 8 页,当前页为6,PageSize 为4。
这时候我在第 6 页 选择删除一条或全部四条记录后,页面重新绑定,但页码仍为6。大家能说下大概原理吗?如果要实现上面的功能是不是一定与分页的方法有关系。
谢谢大家讨论。
如 DataGrid 绑定数据更 8 页,当前页为6,PageSize 为4。
这时候我在第 6 页 选择删除一条或全部四条记录后,页面重新绑定,但页码仍为6。大家能说下大概原理吗?如果要实现上面的功能是不是一定与分页的方法有关系。
谢谢大家讨论。
强行指定当前的页码为指定的值(你删除之前的)
DataGrid1.CurrentPageIndex = Value;
试试~
{
...
DataGrid1.CurrentPageIndex = Convert.ToInt32(Session["intCurrentIndex"]);
...
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
...
Session["intCurrentIndex"] = e.NewPageIndex;
...
}
解决了删除数据后,将页面绑定停留在删除时的页码上。可分如下几步进行操作:此处以 DataGird dgPerson 为例。
1)在 Page_Load 里生命 ViewState["CurrentPage"] 做为当前页码值。
2)在绑定数据前为 ViewState["CurrentPage"] 赋值。
ViewState["CurrentPage"] = Convert.ToString(this.dgPerson.CurrentPageIndex + 1); this.dgPerson.DataBind();
3)显示当前页码赋值
this.labCurrentIndex.Text = ViewState["CurrentPage"].ToString();4)删除操作执行后许加入如下代码
if ((当前实际记录总数 % this.dgPerson.PageSize) == 0 && this.dgPerson.PageCount > 1)
{
//表明删除的记录为当前页的最后一条
this.dgPerson.CurrentPageIndex = this.dgPerson.PageCount - 2;
}
//在进行数据的绑定
this.dgDataBind(); //dgDataBind() 为数据绑定的方法