Диалог jquery вызывает метод на стороне сервера с параметрами кнопки - PullRequest
0 голосов
/ 28 мая 2010

У меня есть элемент управления gridview с delete asp: ImageButton для каждой строки сетки. Я хотел бы, чтобы диалоговое окно jquery появлялось, когда пользователь нажимает кнопку удаления, чтобы спросить, уверены ли они, что хотят удалить его.
До сих пор у меня был диалог, который появлялся просто отлично, у меня есть кнопки в этом диалоге, и я могу заставить кнопки вызывать методы на стороне сервера, но он заставляет диалоговое окно узнать идентификатор строки, выбранной пользователем, и затем передает его серверный код.

Кнопка в строке страницы в настоящее время является просто тегом «a» с идентификатором «dialog_link». JQuery на странице выглядит так:

$("button").button();
    $("#DeleteButton").click(function () {
        $.ajax({
            type: "POST",
            url: "ManageUsers.aspx/DeleteUser",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {

                // Replace the div's content with the page method's return.
                $("#DeleteButton").text(msg.d);
            }
        });
    });

    // Dialog           
    $('#dialog').dialog({
        autoOpen: false,
        width: 400,
        modal: true,
        bgiframe: true

    });

    // Dialog Link
    $('#dialog_link').click(function () {
        $('#dialog').dialog('open');
        return false;
    });


Сам диалог - это просто набор тегов div. Я думал о множестве различных способов сделать это (передача параметров, переменная сеанса и т. Д.), Но не могу понять, как заставить любой из них работать. Любые идеи приветствуются

Как всегда, заранее спасибо тем, кто вносит свой вклад.

1 Ответ

2 голосов
/ 28 мая 2010

Я недавно сделал что-то точно такое же на работе - подтверждение удаления элемента. Я решил это, используя метод Data http://docs.jquery.com/Data для хранения значения, которое я хотел передать.

Так, например, мои ссылки для удаления имели следующее:

<a href="#" class="delete" id="1">Delete</a>

Затем отслеживайте все клики для класса «delete», когда это происходит, задайте данные в диалоговом окне:

$("#dialog").data("id", $(this).attr("id"));

Который затем будет доступен, когда вы в вашем диалоге.

$("#dialog-confirm").dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            'Delete': function() {
                alert($(this).data('id'));
                $(this).dialog('close');
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    });

Надеюсь, это поможет, кричите, если не ясно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...