0

对于网格的每一行,我都有一个带有删除 asp:ImageButton 的 gridview 控件。我想要的是当用户单击删除按钮询问他们是否确定要删除它时弹出一个 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”标签。我想过很多不同的方法(参数传递、会话变量等),但不知道如何让它们中的任何一个工作。任何想法都是最受欢迎的

一如既往,提前感谢那些做出贡献的人。

4

1 回答 1

2

我最近在工作中做了完全相同的事情——确认删除项目。我通过使用 Data http://docs.jquery.com/Data方法来存储我想要传递的值来解决它。

因此,例如我的删除链接有以下内容:

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

然后监视类“删除”的所有点击,当这种情况发生时,在对话框中设置数据:

$("#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');
            }
        }
    });

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

于 2010-05-27T21:21:16.947 回答