恼人的回发和分页问题

本文关键字:分页 问题 | 更新日期: 2023-09-27 18:07:43

我问过一个类似的问题,但是情况已经改变了。

我通过代码而不是在源代码上绑定我的gridview。

分页工作正常,但如果我单击gridview第二页上的按钮(在分页之后),回发将导致分页重置为第1页。谁能告诉我我哪里做错了?

在我的页面加载中,我已经设置了POSTBACK方法,如所示,即如果有回发事件,那么它不应该重置网格,但它确实!

这里是onload:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["usersName"] != null)
        {
            object a = Session["_id"];
            IDMaster = Convert.ToInt32(a);
            GridView1.Columns[10].Visible = true;
            GridView1.Columns[11].Visible = true;
        }
        else
        {
            GridView1.Columns[10].Visible = false;
            GridView1.Columns[11].Visible = false;
        }


        if (!IsPostBack)
        {
           BindGrid();
        }

BindGrid ();

           SqlConnection sqlcon = new SqlConnection(connstring);
           SqlCommand sqlcmd = new SqlCommand("select * from Coffees ORDER BY coffeeName ASC", sqlcon);
           SqlDataAdapter adp = new SqlDataAdapter(sqlcmd);
           DataSet ds = new DataSet();
           adp.Fill(ds);
           GridView1.DataSource = ds.Tables[0];
           GridView1.DataBind();

页面索引方法:

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        if(ViewState["searchTerm"] != null)
        {
            object a = ViewState["searchTerm"];
            string reloadTerm = a.ToString();
            setGrid(reloadTerm);
       }

恼人的回发和分页问题

您需要在GridView1_PageIndexChanging事件中绑定gridview

GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;
        if(ViewState["searchTerm"] != null)
        {
            object a = ViewState["searchTerm"];
            string reloadTerm = a.ToString();
            setGrid(reloadTerm);
       }
        BindGrid();
}

由于您是动态绑定网格视图,请删除

if (!IsPostBack)

条件从页面加载。网格视图每次都需要绑定。

我发现这个问题。我忘了,当我添加一个项目到我的购物车,我调用响应。重定向以刷新页面....显然,这意味着页面被召回,刷新页面,所以网格总是要重置。再次感谢。