Question

Je développe un contrôle utilisateur et il comporte un bouton asp.net dans la boîte de dialogue jQuery mais quand j'appuie sur le bouton, rien ne se passe, je veux dire qu'il n'appelle pas l'événement clic sur le serveur, j'ai essayé

.
dlg.parent().appendTo(jQuery("form:first")); 

mais cela ne m'a pas aidé aussi, est-il possible de réaliser cela dans asp.net UserControl? De plus, je me demande si je peux utiliser UpdatePanel dans la boîte de dialogue ou non?

Était-ce utile?

La solution

Vous pouvez transformer le bouton en bouton de dialogue et placer un bouton asp.net sur la page avec l'ID de HiddenButton et l'envelopper dans un div avec un style d'affichage : none;

Le bouton n'est donc pas visible. (Ne doit pas être visible = "faux" pour que le bouton soit rendu)

Dans la boîte de dialogue javascript, ajoutez un bouton qui a pour effet de cliquer sur le bouton caché

  jQuery("#dialog").dialog({
        buttons: {
            'ButtonText': function() {
                //save the session
           __doPostBack('<%# HiddenButton.ClientID %>', '')
                jQuery(this).dialog('close');
            }
        }
    });

et ajoutez un gestionnaire de clic asp au bouton caché

<div style="display:none;">
    <asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>

L'événement de clic sur le serveur se déclenche lorsque l'utilisateur clique sur le bouton de la boîte de dialogue

J'espère que cela m'aide à utiliser ce modèle tout le temps

Autres conseils

Je soupçonne que cela peut être dû au fait que ASP.NET ne peut pas trouver le bouton dans le formulaire.

Utilisez la configuration d'événement .live dans jQuery - liez l'événement avant de créer la boîte de dialogue à l'aide de .live et cela devrait fonctionner ...

Événements en direct dans jQuery

Vous obtiendrez quelque chose comme ceci dans votre fonction document.ready:


$("#btn").live("click", function(){
  // Do something
});


$("#dialog").dialog({
    ... 
}

J'ai eu le même problème. J'ai fini par extraire le bouton de la boîte de dialogue, le masquer avec css, puis le déclencher à partir de l'événement de fermeture de la boîte de dialogue (je le ferai plus proprement plus tard, mais cela illustre au moins le problème).

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