Bonjour a tous,
je suis en train de developper une application en ASP.NET, et j'ai un tableau GridView auquelle j'ajoute des colonnes de textBox dynamiquement, ensuite j'essaie de recuperer les contenu des textBox pour inserer dans la base de données, Cependant il affiche bien le tableau avec les colonne ajouter mais lorsque j'essaie de recuperer leur contenu ca ne marche pas et il me dit que GridView2.Rows[r].Cells.Count est egale a 3.
Le code pour ajouter les colonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="DateB,NomM,NomP" DataSourceID="SqlDataSourceCircuit"> <Columns> <asp:BoundField DataField="NomP" HeaderText="NomP" ReadOnly="True" SortExpression="NomP" /> <asp:TemplateField HeaderText="ReferenceB" SortExpression="ReferenceB"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ReferenceB") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="ToleranceB" SortExpression="ToleranceB"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("ToleranceB") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
et le traitement pour inserer dans la base de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public void InitialiserGrid() { int k = 0; while (k < GridViewSite.Rows.Count) { TemplateField site = new TemplateField { HeaderText = GridViewSite.Rows[k].Cells[1].Text }; GridView2.Columns.Add(site); k++; } int n = 0; while (n < GridView2.Rows.Count) { int m = 3; while (m < GridView2.Rows[n].Cells.Count) { TextBox T = new TextBox { ID = "TextBox" + m }; GridView2.Rows[n].Cells[m].Controls.Add(T); m++; } n++; } }
Cependant rien ne se passe et il me dit que GridView2.Rows[r].Cells.Count est egale a 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 for (int r = 0; r < GridView2.Rows.Count; r++) { for (int j = 3; j < GridView2.Rows[r].Cells.Count; j++) { k = 0; while (k < GridViewSite.Rows.Count) { if (GridView2.Columns[j].HeaderText == GridViewSite.Rows[k].Cells[1].Text) { TextBoxNumero.Text = GridViewSite.Rows[k].Cells[0].Text; break; } k++; } TextBox tb = (TextBox)GridView2.Rows[r].Cells[j].Controls[0]; Response.Write(TextBoxNumero.Text); string constr = ConfigurationManager.ConnectionStrings["SuiviLaboConnectionString"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("UPDATE [AnnalyseS] SET [ValeurAS] = @ValeurAS WHERE [DateAS] = @DateAS AND [NumeroS] = @NumeroS AND [NomM] = @NomM AND [NomP] = @NomP")) { cmd.Parameters.AddWithValue("@DateAS", Session["Date"]); cmd.Parameters.AddWithValue("@NomM", Session["MatriceC"]); cmd.Parameters.AddWithValue("@NomP", GridView2.Rows[r].Cells[0].Text); cmd.Parameters.AddWithValue("@NumeroS", (TextBoxNumero.Text)); cmd.Parameters.AddWithValue("@ValeurAS", (tb.Text)); cmd.Connection = con; con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } }
Merci pour votre aide
Partager