Вставка кнопки ASP.NET в JQuery UI Диалог - PullRequest
1 голос
/ 20 ноября 2011

Кто-нибудь знает метод, в котором можно было бы вставить кнопку ASP.NET (т. Е. Кнопку с тегом runat="server") в диалоговое окно jQuery UI (в частности, область, где находятся кнопки)? 1002 *

Очевидно, что суть в том, что я могу обрабатывать серверы событий щелчка с помощью этих кнопок. Мне известно, что я могу вызвать обратную передачу из диалоговых кнопок, обрабатывая событие click и вызывая метод __DoPostBack

Пример:

$("#MyDialogDiv").dialog({
    height: 400,
    width: 450,
    modal: true,
    buttons: {
        Ok : function () {
            __DoPostBack(eventTarget, eventArguments);
            $(this).dialog("close");
        }, Cancel: function() {
            $(this).dialog("close");
        }
    }
});

Однако я надеюсь найти более элегантное решение, в котором я мог бы по-прежнему декларативно добавлять кнопки в диалог, но они были бы вставлены в область кнопок диалога.

К сожалению, я могу думать только о том, чтобы переписать всю структуру метода создания диалога, но, возможно, есть лучшее решение?

Ответы [ 3 ]

0 голосов
/ 20 ноября 2011

Мне бы очень хотелось услышать предложения, но, похоже, это может быть единственный простой "в основном общий" способ сделать это.Хаки, но это работает ...

(function ($) {
    $.fn.CustomDialog = function (options) {
        this.dialog(options)
            .parent()
            .find(".ui-dialog-buttonpane > .ui-dialog-buttonset")
            .append($(".DialogButton").button());
    };
})(jQuery);
0 голосов
/ 24 декабря 2012

Вам вообще не нужно вставлять его в диалог. Диалоговое окно jQuery UI работает с контейнером при вызове .dialog(). Итак, в вашем примере вам просто нужны ваши элементы формы, включая <asp:button /> в вас <div id="MyDialogDiv">, а затем вызовите .dialog() для него. Примечание: в моем опыте может быть немного больше, чем я обрисовал, например. вам может понадобиться добавить диалоговое окно в форму при открытии, поскольку пользовательский интерфейс jQuery вытаскивает его из DOM.

0 голосов
/ 20 ноября 2011

Вы можете добавить серверную кнопку в разметку, скрыть ее в стиле display:none и использовать __doPostBack('<%= ButtonID.ClientID %>', '') скрипт для диалогового окна Ok

...