【问题标题】:GridView does not change on page changeGridView 在页面更改时不会更改
【发布时间】:2012-09-13 18:27:54
【问题描述】:

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页的数据。

我该如何解决这个问题?

【问题讨论】:

    标签: c# asp.net .net data-binding gridview


    【解决方案1】:
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
       gridView.PageIndex = e.NewPageIndex;
       BindGridControl();  
       gridView.DataBind();
    }
    

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

    【讨论】:

    • 是的。 BindGridControl() 是我制作的一种方法。并将数据设置为gridview数据源。
    • 我尝试了您发布的更改,但它不起作用...我该怎么办?
    • 我可以详细了解 BindGridControl()
    • 这是 BindGridControl() 方法:::::code protected void BindGridControl() { SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings[connection].ConnectionString); 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.DataSource = dt; GridView1.DataBind(); sqlConn.Close(); }
    • 我也在使用 GridView1_RowDataBound 事件将数据加载到 gridview
    【解决方案2】:

    你可以颠倒指令的顺序

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

    【讨论】:

    • 我做了这些改变。但问题依然存在。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      试试

      protected void GridView1_PageIndexChanging(对象发送者,GridViewPageEventArgs e) { gridView.PageIndex = e.NewPageIndex; 绑定网格控件(); 数据绑定(); }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多