Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разрешить или запретить постбэк / 7 сообщений из 7, страница 1 из 1
30.05.2012, 11:38
    #37817653
maxterbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
Я хочу вызвать диалоговое окно перед постбеком, но не ввиде стандартной функции

Код: c#
1.
2.
 <asp:Button ID="Button1"
runat="server" Text="Button" OnClick="Button1_Click" OnClientClick = "return confirm('post back to the server');"  />



а в виде всплывающего слоя, на котором пользователь будет нажимать OK / Cancel. Как это лучше всего сделать?
...
Рейтинг: 0 / 0
30.05.2012, 14:01
    #37817977
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
Использовать любой js скрипт, или ModalPopup
...
Рейтинг: 0 / 0
30.05.2012, 14:49
    #37818077
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
if (typeof (jQuery) != 'undefined') {
    jQuery(function () {
        jQuery.fn.exists = function () { return this.length > 0; };

        if (typeof (jQuery.fn.dialog) != 'undefined') {
            initConfirmDialog();
        }
    });
}

function initConfirmDialog() {
    var cnfrm = '#cnfrm';

    if (!$(cnfrm).exists())
        $(document.body).append("<div style='display:none' id='cnfrm'><p></p></div>");

    $(cnfrm).dialog(
                {
                    autoOpen: false,
                    modal: true,
                    show: 'fade',
                    speed: '200',
                    buttons: {
                        "Да": function () {
                            $(this).dialog("close");

                            if (lcallback) {
                                isp = true;

                                lcallback(lcallbacksender);

                                isp = false;
                            }
                        },

                        "Нет": function () {
                            $(this).dialog("close");
                            return false;
                        }
                    }
                });

    window.confirm = function (mess, callback, sender) {

        //console.log(arguments[0]);

        if (mess == "")
            return false;

        if (!isp) {
            lcallback = callback;
            lcallbacksender = sender; // arguments.callee.caller - not all browsers send valid arguments (

            $(cnfrm + ' p').html(mess);
            $(cnfrm).dialog('open');

            return false;
        }
    };
}



Код: plaintext
1.
2.
3.
4.
5.
<script type="text/javascript" src="/Scripts/jQuery-UI/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/Scripts/jQuery-UI/jquery-ui-1.8.16.custom.min.js"></script>

<asp:Button ID="Button1"
runat="server" Text="Button" OnClick="Button1_Click" OnClientClick = "return confirm('Post back to the server?', function(sender){sender.click();}, this);"  />



Please :)
...
Рейтинг: 0 / 0
30.05.2012, 15:46
    #37818189
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
SanSYS, шотамногабукав :)
...
Рейтинг: 0 / 0
30.05.2012, 16:05
    #37818226
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
МСУSanSYS, шотамногабукав :)
мда.. да еще и не правильно
Я забыл указать следующее обявление:

Код: javascript
1.
2.
3.
var lcallback = function() {};
var lcallbacksender = null;
var isp = false;



по существу - я понятия не имею как правильно переопределить confirm, потому сделал такой костыль, который более-менее можно нормально использовать во всех браузерах

Был заказчик, грит хочу красивые алерты, ну там благо все совсем просто
Прошло время - появилось несколько конфирмов, ну и я далеко не стал уезжать, сделал по тому же принципу но на скорую руку, собственно сюда и скинул как нашел в старых бекапах
Там еще и prompt переопределяется

Все руки не дойдут нормального javascript-кодера какого нить попросить отрефакторить (или переписать все заново), т.к. javascript как таковой я не знаю и, очевидно, представленный код работает не оптимально, но он работает
...
Рейтинг: 0 / 0
30.05.2012, 17:37
    #37818422
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
SanSYS, да ладно, если оно работает и это можно как-нить гибко оформить в отдельный контрол - не вопрос. Но я сторонник минимализма :)

P.S. Вариант от Парамона как нельзя лучше подходит для решения сабжа - всё в коробке под ключ, взял и кури.
...
Рейтинг: 0 / 0
30.05.2012, 17:55
    #37818462
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разрешить или запретить постбэк
МСУВариант от Парамона как нельзя лучше подходит для решения сабжа - всё в коробке под ключ, взял и кури.
Согласен
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разрешить или запретить постбэк / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]