2013-04-06 48 views
0

我问了一个类似的问题,但情况已经改变。恼人的回发和分页问题

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

分页工作正常,但如果我点击GridView的第二页上的按钮(分页后),回发导致分页重置为第1页。谁能告诉我我做错了什么?

在我的pageload中,我设置了!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); 
     } 

回答

0

你需要你的GridView绑定在GridView1_PageIndexChanging事件

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(); 
} 

希望它为你工作。

+0

感谢您的回答。遗憾的是,现在让我想起当我点击第2页时,然后gridview正在消失的问题。 – user1352057 2013-04-06 22:06:47

+0

嗨,只是尝试在你的事件中使用你的'BindGrid()'方法而不是'DataBind()'。我已经更新了我的答案。 – Sachin 2013-04-06 22:10:59

+0

再次感谢您的帮助。我已经尝试了绑定,但回传后仍然将分页重置为1 – user1352057 2013-04-06 22:16:54

0

你既然是动态结合网格视图,请删除页面加载

if (!IsPostBack) 

条件。网格视图需要每次绑定。

0

我发现此问题。我忘记了将一个项目添加到我的购物车后,我打电话给response.redirect刷新了页面......显然这意味着页面被召回刷新了页面,因此网格总是会重置。再次感谢。