2009-11-02 88 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(); 
}