2013-09-10 14 views
13

Zaten çevrimiçi arama yaptım ve sağlanan birkaç çözümü deneyin, ancak bunların hiçbiri benim için çalışmıyor.Bir jquery iletişim kutusundaki bir asp.net düğmesine tıklanamıyor

Bir div içinde bir düğmem var. Bir jquery iletişim kutusundaki div görüntülüyorum. Düğme tıklatması jquery iletişim kutusunda çalışmaz.

Ben aşağıda kodum:

aspx

<div id='one'> 
<asp:LinkButton ID="ConfigureAlerts" OnClick="btnConfigureAlerts_Click" runat="server">Configure Alerts</asp:LinkButton> 
</div> 
<div id="ViewModalPopupDiv2"> 
     <asp:UpdatePanel ID="UpdatePanel3" runat="server"> 
      <ContentTemplate> 
      <asp:Panel ID="Panel2" runat="server" HorizontalAlign="left" ScrollBars="Auto"> 
      <asp:Button ID="btnGetLogs" runat="server" Text="SendAlerts" OnClick="btnSendAlertEmail_Click"/> 
      </asp:Panel> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 

jquery

function ViewModelPopup2() { 
      $("#ViewModalPopupDiv2").dialog({ 
       scrollable: true, 
       width: 800, 
       modal: true 
      }); 
     } 

aspx.cs

protected void btnSendAlertEmail_Click(object sender, EventArgs e) 
     { 

      // Code to send email 

     } 

protected void btnConfigureAlerts_Click(object sender, EventArgs e) 
     { 

     ScriptManager.RegisterStartupScript 
         (this, this.GetType(), "callScriptFunction", "ViewModelPopup2();", true); 
     } 
    } 

bana yapmam gerekenleri bildirin

, sunucu contr tetiklemek için ol olayları.

+0

senin onClick olay olması gerekmez btnConfigureAlerts_Click()? Neden javascript işlevini çağıracaksanız, sadece normal bir html düğmesi kullanmıyorsunuz? –

+0

JQuery iletişim kutusunun içindeki düğmenin arkasındaki kodu tetiklemek istediğine inanıyorum. Düğme kimliğinizin "btnConfigureAlerts" olması gerektiğini düşünüyorum. – ElliotM

+0

Javascript hataları için konsolunuzu kontrol edin. –

cevap

22

Ayrıca asp.net düğmeleri ve jQuery UI Dialog ile bu sorunu yaşadım. Bunu çözmek için, aspnet düğmenizde UseSubmitBehavior etiketini false olarak ayarlamanız gerekir. UseSubmitBehavior özellik (bu varsayılan değerdir) gerçek ayarlandığında

, düğme UseSubmitBehavioryanlış, düğme olarak ayarlanırsa, tarayıcı en mekanizmasını göndermek (ve jQuery iletişim UI bunu manipüle edilir) kullanacaktır asp.net çerçevesinin sayfada formda yayınlanacak bir istemci tarafı komut dosyası kullanacaktır.

Yani HTML böyle olmalı:

<div id='one'> 
<asp:LinkButton ID="ConfigureAlerts" OnClick="btnConfigureAlerts_Click" runat="server">Configure Alerts</asp:LinkButton> 
</div> 
<div id="ViewModalPopupDiv2"> 
     <asp:UpdatePanel ID="UpdatePanel3" runat="server"> 
      <ContentTemplate> 
      <asp:Panel ID="Panel2" runat="server" HorizontalAlign="left" ScrollBars="Auto"> 
      <asp:Button ID="btnGetLogs" runat="server" Text="SendAlerts" OnClick="btnSendAlertEmail_Click" UseSubmitBehavior="false" /> 
      </asp:Panel> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 

fazla detay http://msdn.microsoft.com/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx

+0

Sadece kodumu düzenledim.Lütfen kontrol edin, iki düğmem var ve kullandığım düğme tıklama olayının doğru olduğunu düşünüyorum – CodeNinja

+0

@ Agent007 Tamam, cevabımda bir örnek ekledim. Umarım yardımcı olur. –

+0

Hey Teşekkürler Bu çalışır! Ayrıca jquery iletişim kutusundaki açılır listeyi nasıl kullanabileceğimi de söyleyebilir misiniz? DropdownList dizini şu anda değişmiyor. – CodeNinja

4

de bu klasik, benim iletişim jQuery, soru taşımak için teşekkürler.

jQuery UI, herhangi bir nedenden dolayı iletişim kodunuzu, form etiketinizin dışında, html işaretinin altına taşır. Biraz daha jQuery ile forma geri iletişim kutusunun yerini gerekir:

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

dlg sizin jQuery.UI iletişim nesnedir nerede.

 var dlg = $("#ViewModalPopupDiv2").dialog({ 
      scrollable: true, 
      width: 800, 
      modal: true 
     }); 
     dlg.parent().appendTo(jQuery('form:first')); 

Bu, sizin için tekrar çalışmasını sağlamalı. Şerefe!

Bu işe yaramazsa, açık durumunda bunu yaparken deneyin:

open: function(type,data) { $(this).parent().appendTo("form"); }

+0

Hey TombMedia! Teşekkür ederim ! Bir şekilde çözüm işe yaramıyor. Yukarıdaki kodu ViewModalPopup2() işlevi olarak adlandırılan bir işlevde tutuyorum. Sence bu soruna neden olacak mı? – CodeNinja

+0

Hayır, bu hiç sorun olmaz. Bunu sıraladığın için sevindim. – TombMedia

+0

Teşekkürler, sorunumu çözdü :) – Tanu