Bonjour,

Dans une page, j'ai un repéteur :
Code aspx : 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
 
                    <asp:Repeater runat="server" ID="RepeaterTickets" ItemType="Ticket">
                        <ItemTemplate>
                            <tr>
                                <td>
                                    <hr />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <%# Item.Start.ToString("dd/MM/yyyy HH:mm") %> - <%# Item.End.ToString("HH:mm") %><br />
                                    <asp:Label AssociatedControlID="TxtSubTicketName" Text="Sujet : " runat="server"/><asp:TextBox ID="TxtSubTicketId" runat="server" style="display:none" Text="<%# Item.Id %>" /><asp:TextBox ID="TxtSubTicketName" runat="server" Text="<%# Item.Name %>" /><br />
                                    <asp:Label AssociatedControlID="TxtSubTicketDescription" Text="Résumé : " runat="server"/><br /><asp:TextBox ID="TxtSubTicketDescription" runat="server" TextMode="MultiLine" placeholder="Description complète des actions menées..."  Text="<%# Item.Description %>"/><br />
                                </td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>

Je l'alimente dans mon !IsPostBack :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
            RepeaterTickets.DataSource = ticket.Children;
            RepeaterTickets.DataBind();

Et j'ai un bouton Save :
Code aspx : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<asp:Button ID="BtnSave" Text="Enregistrer" runat="server" OnClick="BtnSave_Click" CssClass="btnsubmit" Enabled="false" />

Dont voici le code :
Code csharp : 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
 
    protected void BtnSave_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in RepeaterTickets.Items)
        {
            int SubTicketId = int.Parse(((TextBox)item.FindControl("TxtSubTicketId")).Text);
            TextBox TxtSubTicketName = (TextBox)item.FindControl("TxtSubTicketName");
            TextBox TxtSubTicketDescription = (TextBox)item.FindControl("TxtSubTicketDescription");
 
            foreach (Ticket subticket in ticket.Children)
            {
                if (subticket.Id == SubTicketId)
                {
                    if (subticket.Name != TxtSubTicketName.Text || subticket.Description != TxtSubTicketDescription.Text)
                    {
                        subticket.Name = TxtSubTicketName.Text;
                        subticket.Description = TxtSubTicketDescription.Text;
                        subticket.Update();
                    }
                    break;
                }
            }
        }
 
        RepeaterTickets.DataSource = ticket.Children;
        RepeaterTickets.DataBind();
    }

Je ne comprends pas pourquoi, mais "RepeaterTickets.Items" ne contient jamais aucun élément lorsque je clique sur le bouton !
Comment est-ce possible ? Qu'est-ce que j'ai oublié ?