У меня есть панель обновления на моей веб-странице asp.net. Я хочу запустить панель обновления внутри функции javascript внутри запуска с помощью кнопки.
Для этого я использовал функцию __doPostBack('myUpdatePanel', '');
. Но я думаю, что это вызывает всю обратную страницу страницы. Моя функция document.ready также выполняется, когда я вызываю эту функцию. Возможно, мне не хватает некоторых баллов.
Есть ли другой способ инициировать обновление в функции javascript?
Как вызвать панель обновления в функции javascript
Ответ 1
Я думаю, что если вы поместите скрытую кнопку внутри панели обновления, и вы можете использовать javascript для запуска щелчка этой кнопки, она будет делать то, что вы хотите.
<script type="text/javascript">
function Update_UpdatePaanel() {
document.getElementById('<%= YourButton.ClientID %>').click()
}
</script>
Кнопка ДОЛЖНА находиться внутри скрытого div и НЕ устанавливать visibile = "false", потому что если вы установите значение false, элемент управления не будет отображаться, а javascript будет создавать ошибки.
<div style="display:none">
<asp:Button ID="YourButton" runat="server" />
</div>
Ответ 2
Просто создайте функцию javascript и выполните сгенерированное событие postback:
<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>
Вышеуказанный оператор помещается на вашу страницу aspx и ссылается на тот же самый код, сгенерированный с сервера, чтобы вызвать обратную передачу для вашей панели. Вы можете использовать его, поставив его внутри функции на стороне клиента:
function fncUpdatePanel () {
<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>;
}
Затем вы можете прикрепить эту функцию к любому событию на своей странице (даже событие mouseover). В этом примере серверная сторона присоединяет событие:
myUpdatePanel.attributes('onmouseover', 'fncUpdatePanel()')