2016-05-23 28 views
0

我有一個webform設置與按鈕單擊解析.txt文件並將其放入數據表中。當解析結束時,數據表綁定到gridview。我試圖添加分頁,因爲我得到噸行,但它似乎並沒有正常工作。每當我點擊下一頁時,網格消失,並且它再次出現在正確的頁面上,我需要再次點擊按鈕。GridView綁定到Datatable-尋呼無法正常工作

我嘗試添加以下代碼來源:

<asp:GridView ID="GridView1" Runat="server" 
    AutoGenerateColumns="true" 
    AllowPaging="True" OnPageIndexChanging="OnPageIndexChanging" > 

這一點:

protected void OnPageIndexChanging(object sender, EventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
} 

,但它似乎並沒有改變任何東西。任何想法我做錯了什麼?

+0

嘗試添加特定的頁面大小,比如'每頁=「10」' – Irfan

+0

我做到了,我也有一個選項,相應地更改頁面大小,仍然無法正常工作。 – Freebirdy

回答

0

嘗試添加OnPageIndexChanging事件裏面的GridView

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true" 
OnPageIndexChanging="OnPageIndexChanging" PageSize="5"> 

和您aspx.cs代碼。嘗試綁定Page_Load事件的Gridview。

protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     GridView1.PageIndex = e.NewPageIndex; 
     GridView1.DataBind(); 
    } 

protected void Page_Load(object sender, EventArgs e) 
    { this.BindGrid();} 

private void BindGrid() 
    { 
     string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(constr)) 
     { 
      using (SqlCommand cmd = new SqlCommand("SELECT * From [dbo].[your table] ")) 
      { 
       using (SqlDataAdapter sda = new SqlDataAdapter()) 
       { 
        cmd.Connection = con; 
        sda.SelectCommand = cmd; 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
        } 
       } 
      } 
     } 
    } 
+0

如果我添加AutoGenerateColumns =「false」,gridview甚至不會加載。我嘗試了你的建議,不起作用。 – Freebirdy

+0

我認爲你的'Page_Load'事件不能在頁面上填充數據,嘗試在'Page_Load'事件上加載Gridview。 – Irfan

+0

我添加了以下內容: If(GridView1.Rows.Count> 0) LogGrid(); LogGrid是創建數據表並填充它的函數。這解決了這個問題,但是 - 我不希望這個函數工作在每個頁面加載。必須有另一種選擇,不是嗎? – Freebirdy

0
protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     GridView1.PageIndex = e.NewPageIndex; 
     //here yo have to assign datasource 
     //Some thing like this 
     ///GridView1.DataSource=DataTable; 
     GridView1.DataBind(); 
    } 
+0

已經這樣做了,因爲DataTable沒有保存在按鈕點擊函數之外,所以不起作用。 – Freebirdy