Как выполнить функцию JavaScript перед обратной передачей кнопки asp.net

Не стесняйся, брось исключение. Исключения являются вполне допустимым способом оповещения о сбое и намного более понятны, чем любая система с кодом возврата. «Исключительный» не имеет ничего общего с тем, как часто это может происходить, и не связан с тем, что класс считает нормальными условиями выполнения. Бросать исключение, когда происходит деление на ноль, просто прекрасно, независимо от того, как часто это может происходить. Если проблема вероятна, защитите свой код, чтобы метод не вызывался с неверными аргументами.

14
задан Michael Dillon 22 January 2012 в 03:55
поделиться

3 ответа

Подключите OnClientClick к некоторой функции javascript, которая возвращает истину или ложь. Обратная передача происходит, если возвращается истина, иначе она отменяется.

  <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>
23
ответ дан 1 December 2019 в 07:40
поделиться

Вы можете использовать событие onsubmit формы вашей страницы. Это происходит до отправки формы и позволит вам остановить отправку формы, если вам нужно, отменив всплытие. В случае, если вам это нужно, последние две строки в этом примере отменит всплытие между браузерами.

<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 приведен только для примера, однако (на мой взгляд) это предпочтительный способ делать то, что вы ищете. Это выглядит примерно так (в центре экрана):

Загрузка ...

Это будет работать для любого элемента, вызывающего PostBack, поэтому вам не нужно вручную вызывать ShowLoading () на каждой кнопке или элементе формы, которые могут быть на вашей странице.

9
ответ дан 1 December 2019 в 07:40
поделиться

Посмотрите на OnClientClick, вы можете добавить туда вызов js-функции или встроенный JS.

Или вы можете подключиться к кнопке с помощью JQuery и отобразить модальный диалог с асинхронным обратным вызовом .

3
ответ дан 1 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: