2011-07-28 32 views
11

asp.net web sayfamda bir güncelleme panosuna sahibim. Güncelleme panosunu bir tuşla tetiklemek için bir javascript işlevi içinde tetiklemek istiyorum.
Bunu yapmak için __doPostBack('myUpdatePanel', ''); işlevini kullandım. Ama bence tüm sayfa geri göndermeye neden oluyor. Bu işlevi çağırdığımda, document.ready işlevim de yürütülür. Bazı noktaları kaçırıyor olabilirim.
Güncelleme panelini bir javascript işlevi içinde tetiklemenin başka bir yolu var mı?Bir javascript işlevi içinde updatepanel'i nasıl tetiklerim

cevap

18

Güncelleme paneline gizli bir düğme koyarsanız ve bu düğmeyi tıklatarak javascript'i kullanabilirseniz, istediğiniz şeyi yapar.

<script type="text/javascript"> 
     function Update_UpdatePaanel() { 
      document.getElementById('<%= YourButton.ClientID %>').click() 
     } 
    </script> 

düğmesi gizli div içinde OLMALIDIR ve visibile set YAPMAYIN = false olarak ayarlayın eğer kontrol işlemek olmaz ve javascript hataları üretecek çünkü "yanlış".

<div style="display:none"> 
     <asp:Button ID="YourButton" runat="server" /> 
    </div> 
+0

gerçekten mümkün mü? Bu yüzden bir tıklamanın nasıl tıklanacağını araştırmalıyım. javascript ile gizli bir tıklamanın tıklama olayını nasıl tetikleyeceğinizi biliyor musunuz? – Fer

+0

document.getElementById ('<% # YourButton.ClientID%>') 'ı tıklatın() –

+0

Cevabımı örnek kodla güncelleştirdim. –

3

Sadece bir javascript fonksiyonu oluşturmak ve yürütmek üretilen işlem bildirim olayı:

<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%> 

yukarıdaki deyimi sizin aspx sayfasında konur ve bu sunucudan oluşturulan tam aynı kod neden başvuran paneliniz için geri gönderme. Sen istemci tarafında bir fonksiyonu içine koyarak kullanabilirsiniz:

function fncUpdatePanel() { 
    <%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>; 
} 

Sonra sayfanızda herhangi bir olay (hatta bir mouseover olay) için bu işlevi ekleyebilirsiniz. Bu örnek, olayı eklemek için bir sunucu tarafı kullanır:

myUpdatePanel.attributes('onmouseover', 'fncUpdatePanel()') 
+0

numaralı telefona koymam gerekti? javascript kodunda paneli tetiklemem gerek. Kodunuz sunucu tarafında mı görünüyor? – Fer

+0

ek ayrıntılar eklendi – rkw

+1

Bu işe yaramaz çünkü GetPostBackEventReference, geri bildirimleri desteklenmeyen postalar için değil. Bunun yerine GetCallbackEventReference'ı kullanmaya çalışıyorum ama çalışmasını sağlamak için doğru kontrol referansını geçerek hiç şansım olmadı. – jlafay

İlgili konular