J'ai un contrôle DropDownList personnalisé, SDropDownList. J'essaie d'enregistrer et de déclencher l'événement 'SelectedIndexChanged'. J'ai évidemment commencé en ajoutant l'attribut OnSelectedIndexChanged = "method" au balisage mais cela ne déclencherait pas l'événement. J'ai aussi essayé l'enregistrement par programme en cas OnBound du répéteurL'événement DropDownList ne se déclenche pas dans le répéteur
protected void rptrSection1_Bound(object sender, RepeaterItemEventArgs e)
{
var ctl = e.Item.FindControl("ddlS1") as SDropDownList;
ctl.SelectedIndexChanged += new EventHandler(ddlS1_SelectedIndexChanged);
}
Note: J'avais lu quelques messages différents forum qui ont indiqué la désactivation du ViewState du répéteur résoudrait ce problème. Ce n'est pas une option pour moi.
Merci pour l'aide!
Comme demandé, le balisage:
<asp:Panel ID="pnlSection1" runat="server">
<asp:Repeater ID="rptrSection1" runat="server" OnItemCommand="rptrSection1_Command"
OnItemDataBound="rptrSection1_Bound">
<ItemTemplate>
<table class="Section2Table" cellspacing="3">
<tr>
<td class="simgv" style="padding: 3px">
<sc:SDropDownList ID="ddlS1" runat="server" OnSelectedIndexChanged="ddlS1_SelectedIndexChanged" >
<asp:ListItem Text="Compliant" Value="0" />
<asp:ListItem Text="Other Than Serious" Value="1" />
<asp:ListItem Text="Serious" Value="2" />
<asp:ListItem Text="Critical" Value="3" />
</sc:SDropDownList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
Pouvez-vous poster le balisage où le contrôle est? – Oded