javascript'ten "AcceptSuggestion" çağırmaya çalışıyorum. "AcceptBtn" üzerinde bir tıklamayı simüle ediyorum ve sonra bir tablo satırını yenilemek istiyorum. Çalışıyor ... ama "AcceptSuggestion" işlevi üç kez çağrılıyor. Herkes nedenini biliyor mu? İlerlemeden önce "acceptBtn" i tıklamaya çalıştım ama şansım yok. fonksiyon çağrıldığını buradajQuery - işlev üç kez çağrılıyor
<asp:UpdatePanel ID="12" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div id="123">
<asp:Literal ID="litTable" runat="server"></asp:Literal>
</div>
<button id='acceptBtn' onserverclick="AcceptSuggestion" runat="server" style="display: none" />
<button id='acceptAllBtn' onserverclick="AcceptAllSuggestions" runat="server" style="display: none" />
<asp:HiddenField ID="1" runat="server" Value="" />
<asp:HiddenField ID="2" runat="server" Value="" />
<asp:HiddenField ID="3" runat="server" Value="" />
<asp:HiddenField ID="4" runat="server" Value="" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="acceptBtn" EventName="ServerClick" />
<asp:AsyncPostBackTrigger ControlID="acceptAllBtn" EventName="ServerClick" />
</Triggers>
</asp:UpdatePanel>
Ve:
Protected Sub AcceptSuggestion()
Dim params As String
params = 1.Value
Dim param() As String = Split(params, "|", , CompareMethod.Text)
update(param)
End Sub
Eh, ben sorun güncelleme paneli ne tetik değil sanırım İşte
güncelleme paneldir.Düğmeyi çağırmak için javascript işlevim işte bu işe başlamak için bulamadım ve zaten her şeyi denediğimi hissediyorum.
function acceptButton(i) {
var params = "";
params += document.getElementById("var1" + i).textContent;
params += "|";
params += document.getElementById("var2" + i).textContent;
params += "|";
params += document.getElementById("var3" + i).textContent;
params += "|";
params += document.getElementById("var4" + i).textContent;
params += "|";
params += document.getElementById("var5" + i).textContent;
var bp = document.getElementById('<%=1.ClientID%>');
bp.value = params;
var ri = document.getElementById('<%=2.ClientID%>');
ri.value = i;
var Status = document.getElementById('<%=3.ClientID%>');
Status.value = 1;
$('#<%=acceptBtn.ClientID%>').off().click();
}
Cevabınız için teşekkürler, ancak sayfanın PostBack olup olmadığını kontrol ediyorum. Page_Load doğrulama amaçlandığı gibi çalışıyor, ancak AcceptSuggestion işlevi hala 3 kez çağrılıyor. –
Üzgünüz, Kontrol cihazınızı göndermediniz ve PostBack'i kontrol edip edemediğinize karar veremiyorum. Bu durumda, ben olsaydım, sayfa yaşam döngüsü set kesme noktalarındaki tüm yöntemleri uygulardım, ayrıca işlevinizi çağıran olayı da kontrol ederim. Fonksiyonunuzun console.log (arguments.callee) tarafından çağrıldığı yerden kontrol edilebilir ve buna çağrılan şeyi görebilirsiniz. –
Bunun için üzgünüm. İkinci cümlenizi tam olarak anlamadım "Bu durumda, siz olsaydım, sayfa yaşam döngüsü set kesme noktalarındaki tüm yöntemleri uygulardım". "console.log (arguments.callee)" şey, sanırım javascript işlevinin kaç kez çağrıldığını görmeye çalışıyorsunuz, eğer öyleyse, sadece bir kez çağrılıyor. Üzgünüm ama javascript için yeniyim :( –