Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView不会在页面更改时更改_C#_Asp.net_.net_Data Binding_Gridview - Fatal编程技术网

C# GridView不会在页面更改时更改

C# GridView不会在页面更改时更改,c#,asp.net,.net,data-binding,gridview,C#,Asp.net,.net,Data Binding,Gridview,Gridview:页面更改时数据不会更改 嗨,我在用c#开发一个asp.net网站。 我有一个带分页的gridview,gridview是从sql数据库填充的,在PageIndexChanging上我有: protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { BindGridControl(); gridView.PageIndex = e.NewPageInde

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

我怎样才能解决这个问题

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

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

您可以颠倒指令顺序

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

    gridView.PageIndex = e.NewPageIndex;

        BindGridControl();

    gridView.DataBind();
}
试一试

受保护的无效GridView1\u页面索引交换(对象发送方,GridViewPageEventArgs e) { gridView.PageIndex=e.NewPageIndex; BindGridControl(); 数据绑定(); }
我也有这个问题很久了。 我想到了这个,它终于对我起作用了

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

对BindGridControl()是我制作的一个方法。并将数据设置为gridview数据源。我尝试了您发布的更改,但无效。。。我能做什么?我可以详细了解BindGridControl()这是BindGridControl()方法::
code-protectedvoid-BindGridControl(){SqlConnection-sqlConn=new-SqlConnection(ConfigurationManager.ConnectionString[connection].ConnectionString);SqlDataReader-dr;SqlCommand-cmd;cmd=new-SqlCommand();cmd.Connection=sqlConn;cmd.CommandType=CommandType.storedProcess;cmd.CommandText=“sp_load”sqlConn.Open();dr=cmd.ExecuteReader();DataTable dt=new DataTable();dt.load(dr);GridView1.DataSource=dt;GridView1.DataBind();sqlConn.Close();}
Im还使用GridView1\u RowDataBound事件将数据加载到gridviewI,我做了这些更改。但问题依然存在。
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();
}