0

Gridview:页面更改时数据不会更改。

嗨,我正在使用 c# 开发一个 asp.net 网站。我有一个带有分页的 gridview,gridview 是从 sql 数据库填充的,并且在 PageIndexChanging 我有:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    BindGridControl();

    gridView.PageIndex = e.NewPageIndex;
    gridView.DataBind();
}

例如,如果我单击第 2 页,则下一行数据显示正常。但是如果我点击回到第 1 页,数据不会改变,它会继续显示第 2 页的数据。

我该如何解决这个问题?

4

4 回答 4

2
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
   gridView.PageIndex = e.NewPageIndex;
   BindGridControl();  
   gridView.DataBind();
}

您的 BindGridControl() 是否加载数据并将其设置为您的 gridView 数据源?

于 2012-09-13T18:39:52.213 回答
0

您可以颠倒指令的顺序

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

    gridView.PageIndex = e.NewPageIndex;

        BindGridControl();

    gridView.DataBind();
}
于 2012-09-13T18:44:01.487 回答
0

我也有这个问题很久了。我想出了这个,它终于对我有用。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    BindGridControl(e.NewPageIndex);
}

然后在您的 BindGridControl 函数中:

protected void BindGridControl(int pageNumber = 0)
{ 
    SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings[connect‌​ion].ConnectionStrin‌​g);
    SqlDataReader dr;
    SqlCommand cmd;
    cmd = new SqlCommand();
    cmd.Connection = sqlConn;
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "sp_load";
    sqlConn.Open();
    dr = cmd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(dr);
    GridView1.PageIndex = pageNumber;
    GridView1.DataSource = dt;
    GridView1.DataBind();
    sqlConn.Close();
}
于 2017-12-06T08:59:41.457 回答
-1

尝试

protected void GridView1_PageIndexChanging(对象发送者,GridViewPageEventArgs e)
{

    gridView.PageIndex = e.NewPageIndex;

    绑定网格控件();

    数据绑定();
}
于 2013-01-12T23:59:50.570 回答