Кнопка отправки asp.net закрыть Jquery Ajax - PullRequest
1 голос
/ 12 февраля 2012

Я работаю над страницей asp.net, где я использовал диалог JQuery UI. Этот диалог имеет кнопку отправки. Когда я нажимаю кнопку отправки, диалог закрывается. Я хочу вызвать веб-метод на это. Если метод возвращает значение ture, то я хочу закрыть его, в противном случае я хочу оставить его открытым с отображенным сообщением об ошибке.

[Изменено]

    <script>

        jQuery(function () {
            var dlg = jQuery("#dialog").dialog({
                draggable: true,
                resizable: true,
                show: 'Transfer',
                hide: 'Transfer',
                width: 320,
                autoOpen: false,
                minHeight: 10,
                minwidth: 10,
                beforeClose: function () {
                    $.ajax({
                        url: "Default.aspx/GetResult",
                        success: function (response) {
                            if (response == true) {
                                ("#dialog").close()
                            }
                            else {
                                alert('asdasdds');
                            }
                        }
                    });


                    return false; //this will stop dialog box to close
                }
            });
            dlg.parent().appendTo(jQuery("form:first"));
        });

    </script>

 <div id="Result">
        Click here for the time.</div>
    <div id="dialog" style="text-align: left; display: none;">
        <asp:Button ID="btnButton" runat="server" Text="Button" OnClick="btnButton_Click" />
    </div>

как это сделать. Пожалуйста, предложите.

С уважением, Асиф Хамид

1 Ответ

2 голосов
/ 12 февраля 2012

Вы можете вызвать webmethod, используя ajax, а затем действовать в соответствии с ним в зависимости от ответа. Пусть ваш веб-метод просто вернет true/false, и затем вы можете проверить это значение на стороне клиента.

Выполните этот код при нажатии кнопки отправки и не закрывайте диалоговое окно. Пусть обработчик успеха решит, закрыть его или нет.

$.ajax({
    url: "urlOfTheService.asmx/methodName",
    success: function(response){
        if(response == true){
            //Code to close the dialog
        }
        else{
            //Show the error message
        }
    }
});

ajax() ссылка: http://api.jquery.com/jQuery.ajax/

Обновление:

Используйте событие open диалогового окна, чтобы присоединить обработчик отправки к форме и выполнить приведенный выше код.

        jQuery(function () {
            var dlg = jQuery("#dialog").dialog({
                draggable: true,
                resizable: true,
                show: 'Transfer',
                hide: 'Transfer',
                width: 320,
                autoOpen: false,
                minHeight: 10,
                minwidth: 10,
                open: function(){
                     $(this).find('form')
                     .unbind('submit')
                     .submit(function(){
                          var $form = $(this);
                          $.ajax({
                             url: "urlOfTheService.asmx/methodName",
                             success: function(response){
                                if(response == true){
                                   //Submit the form
                                   $form.unbind('submit')[0].submit();
                                }
                                else{
                                   //Show the error message
                                }
                           }
                         });
                         return false;
                     });
                }
            });
            dlg.parent().appendTo(jQuery("form:first"));
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...