jquery对话框使用按钮参数调用服务器端方法

时间:2010-05-27 21:09:47

标签: asp.net jquery server-side parameter-passing

我有一个gridview控件,删除asp:ImageButton为网格的每一行。我想要的是当用户点击删除按钮询问他们是否确定要删除它时弹出一个jquery对话框。
到目前为止,我的对话框已经很好了,我已经在该对话框上有按钮,我可以让按钮调用服务器端方法,但是它让对话框知道用户选择的行的ID,然后将其传递给服务器端代码。

页面行中的按钮当前只是一个带有id“dialog_link”的'a'标签。页面上的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 个答案:

答案 0 :(得分:2)

我最近在工作中做了一些完全相同的事情 - 确认删除项目。我通过使用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');
            }
        }
    });

希望这会有所帮助,如果不清楚则会大喊。