Question

J'ai une question à propos des contrôles et des événements chargés dynamiquement dans ces contrôles (cliquez sur le bouton dans mon cas:)

Voici ce que j'ai obtenu avec un bouton RadPanelBar et une entrée masquée:

              <telerik:RadPanelBar ID="languagesPanelBar" runat="server">
              </telerik:RadPanelBar>
              <asp:Button ID="Button1" runat="server" OnClientClick="funcation(){document.getElementById('someHiddenField').value='true';}" />
              <input id="someHiddenField" type="hidden" runat="server" value="false" />

que lors de l'événement PageLoad, je vérifie si une valeur cachéeHiddenField est vraie ou non, le cas échéant, le nouvel élément doté d'un contrôle chargé dynamiquement est ajouté à RadPanelBar:

        void Page_Load(object sender, EventArgs e)
        {
           if(someHiddenField.Value == "true")
             {
                RadPanelItem newRootItem = new RadPanelItem();
                RadPanelItem newChildIteam = new RadPanelItem();
                Control ctrl = LoadControl("testControl.ascx");
                ctrl.ID = "testCtrl";
                newChildItem.Controls.Add(ctrl);
                newRootItem.Items.Add(newChildItem);
                languagesPanelBar.Items.Add(newRootItem);
              }

    }

testControl.ascx contient un bouton, mais pour une raison quelconque, l'événement onClick ne se déclenche pas lorsque le contrôle est créé de manière dynamique.
Je serais heureux d’entendre des suggestions sur la façon de résoudre ce problème:)

Merci d'avance!

Était-ce utile?

La solution

Déplacez le code de création de contrôles dans l'événement Page_Init.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top