怎么让GridView删除一行后,还停留在删除前的那页上

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:49:22
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
............

InitData(UcfarPager1.CurrentPageIndex);
}//删除事件

private void InitData(int pageindex)
{
string sql = "......";
SqlDataAdapter sa = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
DataSet dd = new DataSet();//填充dd,用来查询总记录条数;
ds.Clear();
dd.Clear();
sa.Fill(dd);
sa.Fill(ds, UcfarPager1.PageSize * (pageindex - 1), UcfarPager1.PageSize, "MyTable");

DataTable dt = ds.Tables[0];
this.UcfarPager1.RecordCount = Convert.ToInt32(dd.Tables[0].Rows.Count.ToString());//总记录条数

this.GridView1.DataSource = dt;
GridView1.DataBind();

}

protected void UcfarPager1_PageChanged(object sender, EventArgs e)
{
InitData(

你调试下
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
............

InitData(UcfarPager1.CurrentPageIndex);
}//删除事件

最后这句代码的CurrentPageIndex是多少,我的思路也就是这样控制显示页。
把删除行的那页的页号取到,直接指定gridView要显示的页号为这个取到的页号。
GridView1.PageIndex

在重新绑定前,先求出你当前的页,还要判断你是否删除的是此页的最后一行,如果是最后一行,你还要把当前选定页号-1,设成你的当前页,再重新绑定

应该没问题的啊?你看看你的Page_OnLoad里的代码是否都放在了If(!IsPostBack)里,如果你页面初始化的那句InitData(1);没有放进去,那这样的结果倒也理所当然了。
如果不是,那还真不懂了......不是你告诉我啊,我关注着呢。