2009-11-02 5 views
0

J'ai une vue de la grille et je veux lier certaines données à ce Gridview au moment de l'exécution.Liaison de données dynamique à gridview

Dans mon bouton événement click j'ai écrit comme ceci

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

} 

Il travaille données fines et affiche. Mais maintenant je veux ajouter plusieurs lignes à gridview. Quand j'essaye de lier seulement une rangée en ajoutant à la vue de grille chaque fois. (i.e valeur récente entrée dans la zone de texte). Je veux ajouter des lignes à gridview.

Comment est-ce que je peux faire ceci?

+0

S'il vous plaît montrer comment vous ajoutez plusieurs lignes à gridview. Aussi, je pense que ce serait mieux si vous filtrez simplement votre ds et ensuite le lier avec gridview autocreatecolumns. –

+0

juste j'essaye d'ajouter une nouvelle rangée pour chaque clic de bouton même seulement (dans l'exemple de code ci-dessus) – Nagu

Répondre

0

Stockez ds dans une vue.

Puis, lorsque vous ajoutez une nouvelle ligne. Récupérez l'ensemble de données de viewstate et ajoutez une nouvelle ligne contenant la valeur récente entrée dans la zone de texte.

comme:

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