J'aime savoir comment obtenir le ClientID/UniqueID d'un contrôle à l'intérieur d'un élément DetailsView EditItemTemplate et lorsque DetailsViews passe en mode Edit et DetailsView est dans un AJAX UpdatePanel. Sans UpdatePanel, pendant PostBack je peux obtenir le contrôle du ClientID, mais maintenant avec un UpdatePanel.Obtenir des contrôles ClientID/UniqueID entre DetailsView et UpdatePanel
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="true" AutoGenerateEditButton="true">
<Fields>
<asp:TemplateField>
<EditItemTemplate>
<asp:CheckBox runat="server" ID="chkboxTest" Text="CHECKBOX" />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
</ContentTemplate>
</asp:UpdatePanel>
Comme vous le voyez, le EditItemTemplate contient un contrôle Checkbox. J'essaie donc d'obtenir le ClientID de cette case à cocher lorsque Detailsview passe en mode Edit. J'ai besoin de cette valeur pour gérer Javascript. Attraper les événements ChangingMode/ChangedMode ne fonctionne pas; chkbox is null:
void DetailsView1_ModeChanged(object sender, EventArgs e)
{
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
var chkbox = DetailsView1.FindControl("chkboxTest"); // <== is null
}
}
Peut-être que j'utilise le mauvais événement? Quelqu'un peut me donner un conseil à ce sujet? Merci.
Est-ce une faute de frappe dans votre événement ModeChanged dans FindControl, il cherche chkxboxTest ...? Si c'est votre code, cela pourrait être le problème. – Mantorok
@Mantorok. désolé typo. Mais toujours nul. – robertpnl
Ok, puis essayez Lignes [0] .Cellules [0] .FindControl. – Mantorok