Я пытаюсь вызвать «AcceptSuggestion» из javascript. Я имитирую клик на «acceptBtn», а затем я хочу обновить строку таблицы. Он работает ... но функция «AcceptSuggestion» вызывается три раза. Кто-нибудь знает почему? Я aleady пытался отвязать «acceptBtn» перед нажатием, но мне не повезло.jQuery - функция вызывается три раза
Вот панель обновления:
<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();
}
Спасибо за ваш ответ, но я уже проверяю, является ли страница PostBack. Верификация Page_Load работает по назначению, но функция AcceptSuggestion все еще вызывается 3 раза. –
К сожалению, вы не разместили свой контроллер, и я не могу проверить, будет ли вы проверять PostBack. В этом случае, если бы я был вами, я бы выполнил все методы в контрольных точках набора жизненного цикла страницы, а также проверил событие, которое вызывает вашу функцию. Вы можете проверить, откуда ваша функция вызывается console.log (arguments.callee), и видеть, что она называется. –
Прошу прощения за это. Я не совсем понял ваше второе предложение «В таком случае, если бы я был вами, я бы использовал все методы в наборах точек жизненного цикла страницы». «console.log (arguments.callee)» вещь, я думаю, вы пытаетесь увидеть, сколько раз вызывается функция javascript, если это так, она называется только один раз. Прошу прощения, но я новичок в javascript :( –