2009-11-02 61 views
0

我有一個網格視圖,我想在運行時將一些數據綁定到這個Gridview。動態數據綁定到gridview

在我的按鈕單擊事件我寫了這樣的

protected void Button1_Click(object sender, EventArgs e) 
{ 
    DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    DataRow dr; 
    DataColumn dc = new DataColumn(); 
     dc.Caption = "Name"; 
     dc.DataType = Type.GetType("System.String"); 
     dc.ColumnName = "Name"; 
     dt.Columns.Add(dc); 


    dr = dt.NewRow(); 
    dr["Name"] = TextBox1.Text; 
    dt.Rows.Add(dr); 
    ds.Tables.Add(dt); 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 

} 

這是工作的罰款,並顯示數據。但是現在我想添加多行到gridview。當我嘗試綁定它時,只有一行添加到網格視圖。 (即最近在文本框中輸入的值)。我想追加行到gridview。

我該怎麼做?

+0

請出示你如何添加多個行的GridView。此外,我認爲這是最好的,如果你只是過濾你的ds,然後綁定它與gridview autocreatecolumns。 – 2009-11-02 05:22:08

+0

只是我試圖爲每個按鈕添加一個新行甚至只有(在上面的代碼示例中) – Nagu 2009-11-02 05:29:12

回答

0

將ds存儲到視圖狀態。

然後當你添加一個新的行。從viewstate中檢索數據集,並添加一個新行,其中包含在文本框中輸入的最近值。

爲:

if(ViewState["ds"]!=null) 
{ 
DataSet ds=(DataSet) ViewState["ds"]; 
dr = ds.Tables[0].NewRow(); 
dr["Name"] = TextBox1.Text; 
ds.Tables[0].Rows.Add(dr); 
GridView1.DataSource = ds; 
GridView1.DataBind(); 
}