Bonjour,

j'aimerais accéder aux données d'un GridView et pour cela, j'utilise le bout de code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            string test = ((TextBox)(row.Cells[1].Controls[1])).Text;
        }
    }
En entrée, le gridview contient déjà une ligne dans laquelle le textbox contient "A".
Si je change la valeur dans le textbox (au lieu de "A" j'ai mis "B"), je ne récupère pas cette données. "((TextBox)(row.Cells[1].Controls[1])).Text" me retourne les données initiales du gridview. Pourquoi ?

Merci


voici le code dans la page aspx pour la conception du GridView
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
34
35
36
37
38
39
40
41
42
43
44
45
46
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnLoad="GridView1_DataBinding" >
        <Columns>
 
 
            <asp:TemplateField HeaderText="Libelle">
                <ItemTemplate>
                    <asp:HyperLink ID="Link" runat="server"
                     Text='<%# DataBinder.Eval(Container.DataItem,"libelleArt") %>'
                     NavigateUrl='<%# "~/Articles/DetailArticle.aspx?ID=" + DataBinder.Eval(Container.DataItem,"ArtId") %>' />
 
                </ItemTemplate>
                <ItemStyle Width="300px" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Quantite">
                <ItemTemplate>
                <asp:TextBox ID="QuantEcran" runat="server"
                             CssClass="FormFieldsRight" Width="70px" Wrap="False" AutoPostBack="false" />
                <asp:HiddenField ID="Quant" runat="server" 
                        Value='<%# DataBinder.Eval(Container.DataItem,"getArtQuantite") %>' />
                <asp:HiddenField ID="SeqArt" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"getArtId") %>' />
                </ItemTemplate>
                <ItemStyle Width="80px" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Unité">
                <ItemTemplate>
                <%# DataBinder.Eval(Container.DataItem, "LibUnit")%>
                </ItemTemplate>
                <ItemStyle Width="80px" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Px. Unit.">
                <ItemTemplate>
                <%# DataBinder.Eval(Container.DataItem, "LibUnitPrix")%>
                </ItemTemplate>
                <ItemStyle Width="80px" />
            </asp:TemplateField>             
            <asp:TemplateField HeaderText="Total">
                <ItemTemplate>
                <%# DataBinder.Eval(Container.DataItem, "PxTotal")%>&nbsp;€
                </ItemTemplate>
                <ItemStyle Width="80px" />
            </asp:TemplateField>
 
        </Columns>
        <HeaderStyle CssClass="headerCart" />
        <AlternatingRowStyle BackColor="#EBEBEB"  />
    </asp:GridView>
et ici comment il est alimenté :
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
    protected void Page_Load(object sender, EventArgs e)
    {
        Panier monPanier;
        monPanier = (Panier)(Session["monPanier"]);
 
        try
        {
            if (monPanier.getPanier.Count > 0)  // monPanier._Panier  Count = 1
            {
                GridView1.DataSource = monPanier;
                GridView1.DataKeyNames = new string[] { "ArtId" };
                GridView1.DataBind();
            }
        }
        catch
        { }
}