标题阐述的不清楚,在说明一下。
如 DataGrid 绑定数据更 8 页,当前页为6,PageSize 为4。
这时候我在第 6 页 选择删除一条或全部四条记录后,页面重新绑定,但页码仍为6。大家能说下大概原理吗?如果要实现上面的功能是不是一定与分页的方法有关系。
谢谢大家讨论。

解决方案 »

  1.   

    在删除函数里删除命令过后是绑定,之后是给显示页数的label重新赋值,你要记得把label的ViewState值设为fales.
      

  2.   

    删除之后
    强行指定当前的页码为指定的值(你删除之前的)
    DataGrid1.CurrentPageIndex = Value;
    试试~
      

  3.   

    private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {   
        ...
        
        DataGrid1.CurrentPageIndex = Convert.ToInt32(Session["intCurrentIndex"]);
        
        ...    
    }private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
        ...
        
        Session["intCurrentIndex"] = e.NewPageIndex;
        
        ...
    }
      

  4.   

    这是我的一点总结,欢迎大家批评指正。
    解决了删除数据后,将页面绑定停留在删除时的页码上。可分如下几步进行操作:此处以 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() 为数据绑定的方法