我问了一个类似的问题,但情况已经改变了。
我通过代码而不是源代码绑定gridview。
分页工作正常,但如果我点击gridview第二页上的按钮(分页后),则回发会导致分页重置为第1页。任何人都可以告诉我我做错了什么吗
在我的pageload中,我已经设置了!POSTBACK方法,如果有回发事件,那么它不应该重置网格,但确实如此!
继承人:
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 :(得分:0)
您需要在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();
}
希望它适合你。
答案 1 :(得分:0)
由于您动态绑定网格视图,请删除
if (!IsPostBack)
来自页面加载的条件。网格视图每次都需要绑定。
答案 2 :(得分:0)
我发现了这个问题。我忘了在我将一个项目添加到我的购物车后,我正在调用response.redirect来刷新页面....显然这意味着页面被召回刷新页面,因此网格总是要重置。再次感谢。