2009-09-11 3 views
1

Je développe un contrôle utilisateur et il a un bouton asp.net dans jQuery Dialog mais quand j'appuie sur le bouton rien ne se passe je veux dire qu'il n'appelle pas l'événement click button le Serverside, je l'ai essayéLe bouton ne postback pas dans la boîte de dialogue jQuery à l'intérieur de UC

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

mais il ne m'a pas aider aussi, est-il possible de cet intérieur asp.net achive UserControl? Aussi, je me demande si je peux utiliser UpdatePanel dans la boîte de dialogue ou non?

+0

quel navigateur utilisez-vous? – TheVillageIdiot

+0

Internet Explorer 8 – zer0w1dthspace

+0

mais j'ai essayé sur firefox 3.5.2 aussi, ça ne marche pas. – zer0w1dthspace

Répondre

3

Vous pouvez faire le bouton un bouton de dialogue et de mettre un bouton sur la page asp.net avec l'ID de HiddenButton et l'envelopper dans un div avec un style de display:none;

Donc le bouton n'est pas visible. (Ne doit pas être visible = « false » si le bouton est rendu)

Dans le javascript dialogue ajouter 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 ajouter un gestionnaire de clic asp au bouton caché

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

événement Cliquez sur le Serverside se déclenche lorsque le bouton de dialogue est cliqué

Hope this helps j'utiliser ce modèle tout le temps

0

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

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

Live events in jQuery

Vous finirez avec quelque chose comme ça dans votre fonction document.ready:


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


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

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