2012-09-13 39 views
0

Gridview:頁面更改時數據不會更改。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中的數據。

我該如何解決這個問題?

回答

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

您的BindGridControl()加載數據並將其設置爲您的gridView數據源?

+0

是。 BindGridControl()是我製作的一種方法。並將數據設置爲gridview數據源。 – pyram

+0

我嘗試了您發佈的更改,但不起作用...我該怎麼辦? – pyram

+0

可以在BindGridControl()中詳細說明 –

0

可以逆轉的指令

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 

    gridView.PageIndex = e.NewPageIndex; 

     BindGridControl(); 

    gridView.DataBind(); 
} 
+0

我做了這些更改。但問題依然存在。 – pyram

0

爲了儘量

 
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 

    gridView.PageIndex = e.NewPageIndex; 

    BindGridControl(); 

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