Bonjour à tous,
Dans une webform j'ai un Repeater à l'intérieur duquel j'ai des textbox, label et button du genre :
<ctrl:RepeatBudgets ID="Repeater1" runat="server">
<ItemTemplate>
<tr runat="server" id="row1">
<td>
<asp:Label runat="server" ID="ExerciceLB" Text='<%#((DateTime)Eval("Exercice")).ToShortDateString().Substring(6, 4) %>' />
</td>
<td>
<asp:Label id="CGLB" runat="server" Text='<%#Eval("ChargesGenerales") %>' />
<asp:TextBox id="CGTB" runat="server" Text='<%#Eval("ChargesGenerales") %>'/>
</td>
<td>
<asp:Label id="CCLB" runat="server" Text='<%#Eval("ChargesChauffage") %>' />
<asp:TextBox id="CCTB" runat="server" text='<%#Eval("ChargesChauffage")%>' />
</td>
<td>
<asp:Label id="CALB" runat="server" Text='<%#Eval("ChargesAscenseur") %>' />
<asp:TextBox id="CATB" runat="server" Text='<%#Eval("ChargesAscenseur") %>' />
</td>
<td>
<ctrl:SubExerciceButton runat="server" Text="-" ID="SubExercice"/>
<ctrl:MajExerciceButton runat="server" Text="Maj" ID="MajButton" CommandArgument='<%#((DateTime)Eval("Exercice")).ToShortDateString()%>' CommandName="Exercice"/>
</td>
</tr>
</ItemTemplate>
</ctrl:RepeatBudgets>
Je souhaite en cliquant sur le bouton MajBouton, désactiver les labels (visible = false) CGLB, CCLB, et CALB et activer les textbox (visible = true) CGTB, CCTB, et CATB.
En cliquant sur le bouton MajButton d'une ligne affichée dans la page, on passe bien dans la méthode OnCommand du bouton qui fait :
protected override void OnCommand(CommandEventArgs e)
{
foreach (Control c in this.Parent.Parent.Controls)
{
foreach (Control c2 in c.Controls)
{
if (c2 is Label)
{
c2.Visible = false;
}
if (c2 is TextBox)
{
c2.Visible = true;
}
}
}
this.Visible = false;
}
Qui fait bien ce qu'il est sensé faire, cependant, cela ne fonctionne pas, pourquoi ? Que faut-il faire ?
Cordialement
Frédéric