У меня есть простой javascript, который я бы хотел запустить при нажатии кнопки, но я также хочу, чтобы на сервере появлялось несколько обратных действий. Логический код для этого выглядит следующим образом:Обратный порядок операций для OnClick и OnClientClick?
<asp:Button ID="btnOK" runat="server" Text="Save Changes" OnClientClick="UpdateParent();" OnClick="btnOK_Click" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClientClick="window.close();" />
<script language="javascript" type="text/javascript">
function UpdateParent()
{
window.opener.document.location.reload(true); // or should we postback instead?
window.close();
}
</script>
В основном, всплывающее окно должно обновить его родителей, а затем закрыть себя. Однако ... если я вызываю window.close(), обратная передача не возникает, и обработчик кнопки не вызывается. Но очевидно, что OnClientClick вызывается до того, как произойдет обратная передача. Должен ли я испускать этот javascript в обработчике кнопок и запускать его, когда страница загружается после обратной передачи? Если да, то что такое собственно способ сделать это в эти дни для ASP.NET 2.0?
Жаль, что приведенный выше код не работает, поскольку он изящно прост и прост.
Закончено делать именно это. Добавлена функция обновления JS на родительской странице с помощью GetPostBackBackEventReference на скрытой кнопке. – Bryan