javascriptから「AcceptSuggestion」を呼び出そうとしています。私は "acceptBtn"のクリックをシミュレートし、テーブルの行を更新したい。それは働いています...しかし、 "AcceptSuggestion"関数は3回呼び出されています。なぜ誰も知っていますか?私はaleadyは "acceptBtn"をクリックする前にバインドを解除しようとしたが、私は運がない。ここでjQuery関数が3回呼び出されています
が更新パネルです:
<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>
そして、ここでは、呼び出される関数です。
Protected Sub AcceptSuggestion()
Dim params As String
params = 1.Value
Dim param() As String = Split(params, "|", , CompareMethod.Text)
update(param)
End Sub
さて、私はこの問題は、更新パネルでもないトリガーではないと思います。
ここにボタンを呼び出すJavaScript関数がありますが、これを動作させるための方法が見つからず、すべてを試したような気がします。
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();
}
答えていただきありがとうございます。私はすでにページがポストバックであるかどうかを確認しています。 Page_Load検証は意図したとおりに機能していますが、AcceptSuggestion関数はまだ3回呼び出されています。 –
申し訳ありません、あなたのコントローラを投稿していない、あなたはポストバックをチェックするかどうかはできません。その場合は、私はあなたのページライフサイクル設定のブレークポイントにすべてのメソッドを実装し、あなたの関数を呼び出すイベントもチェックします。あなたは、あなたの関数がconsole.log(arguments.callee)によって呼び出された場所からチェックし、それを呼び出すことができます。 –
申し訳ありません。 私はあなたの2番目の文を理解していませんでした。 "その場合、私はページライフサイクルのすべてのメソッドをブレークポイントに設定します。" "console.log(arguments.callee)"ということは、javascript関数が呼び出されている回数を確認しようとしていると思います。 申し訳ありませんが、javascriptの新機能です:( –