У меня есть кнопка asp.net, которая является сервером runat, есть дескриптор функции, возвращающий кнопку onclick.
Как я могу отобразить слово "loading ..."
на странице перед тем, как перейти к процедуре сервера?
У меня есть кнопка asp.net, которая является сервером runat, есть дескриптор функции, возвращающий кнопку onclick.
Как я могу отобразить слово "loading ..."
на странице перед тем, как перейти к процедуре сервера?
Подключить OnClientClick к некоторой функции javascript, которая возвращает true или false. Возврат сообщения происходит, если он возвращает true, иначе он отменяется.
<asp:Button id="MyButton" runat="Server" Text="Close"
OnClientClick="return PromptClose();"/>
<script type="text/javascript">
function PromptClose(){
return prompt("Do you really want to close this window?");
}
</script>
Вы можете использовать событие onsubmit
для вашей формы страницы. Это происходит до того, как будет отправлена форма, и позволит вам прекратить подачу формы, если вам нужно, отменив барботирование. В случае, если вам это нужно, последние 2 строки в этом примере будут отменять барботирование между браузерами.
<form runat="server" onsubmit="ShowLoading()">
</form>
<script type="text/javascript">
function ShowLoading(e) {
var div = document.createElement('div');
var img = document.createElement('img');
img.src = 'http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif';
div.innerHTML = "Loading...<br />";
div.style.cssText = 'position: fixed; top: 30%; left: 40%; z-index: 5000; width: 222px; text-align: center; background: #fff; border: 1px solid #000';
div.appendChild(img);
document.body.appendChild(div);
// These 2 lines cancel form submission, so only use if needed.
window.event.cancelBubble = true;
e.stopPropagation();
}
</script>
JavaScript, приведенный выше, является, например, только тем, что это (на мой взгляд) предпочтительный способ делать то, что вы ищете. Это выглядит примерно так (в центре экрана):
Загрузка...
http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif
Это будет работать для любого элемента, который вызывает PostBack, поэтому вам не нужно вручную вызывать ShowLoading()
для каждой кнопки или элемента формы, который у вас может быть на вашей странице. Я бы заменил содержимое ShowLoading()
на некоторые реальные функции загрузки, а не только на код кода, который я сбросил вместе.
Посмотрите на OnClientClick, вы можете добавить вызов функции js или встроенного JS.
Или вы можете подключиться к кнопке с помощью JQuery и отобразить модальное диалоговое окно с асинхронным обратным вызовом.