0

我不能太多使用jquery,所以我需要帮助。我在这里使用 jQuery UI 对话框。我有链接打开呈现我的部分视图的对话框。

$(function () {
    $("#transferTo").dialog({
        autoOpen: false,
        height: 100,
        width: 300,
        modal: true,
        resizable: false,
        open: function (event, ui) {
            $(this).load('<%= Url.Action("TransferTo", "Pacient") %>');
        },
        buttons:
        {
            "Transfer": function () {
                // do something in database
                $(this).dialog("close");
            },
            "Cancel": function () {
                $(this).dialog("close");
            }
        }
    });
    $("#transferToLink").click(function () {
        $("#transferTo").dialog("open");
        return false;
    });
});

<a href="javascript:void()" id="transferToLink">Transfer to</a>

部分视图如下所示:

<div id="transferTo">
    Zmena kliniky
<%= Html.DropDownList("klinika", ViewData["kliniky"] as SelectList)%>
</div>

在主视图中有一些数据行。每一行都是具有他的 id 的用户。所以我想做的...

当我单击链接 transferTo (单击每行上的编辑链接后显示)时,我需要将用户的 id 传递给 jquery 函数并在对话框的 Click 事件 TransferTo 上使用它。当用户单击对话框中的 TransferTo 按钮时,它必须从对话框的下拉列表中获取 id 参数和选择的值,并在与数据库通信的 C# 函数中使用它(repository.Edit(id,selectedValue))

4

2 回答 2

1

我会这样做:

实现您的链接以调用将打开对话框的 javascript 函数。

<a href="#" onclick="openPopup('@id')" id="transferToLink">Transfer to</a>

javascript应该是这样的:

function openPopup(id) {
    $("#transferTo").dialog({
        autoOpen: false,
        height: 100,
        width: 300,
        modal: true,
        resizable: false,
        open: function (event, ui) {
            $.ajax({
                "url": yourActionUrl,
                "data": { myParameter: id },
                "type": "POST"
            });
        },
        buttons:
    {
        "Transfer": function () {
            // do something in database
            $(this).dialog("close");
        },
        "Cancel": function () {
            $(this).dialog("close");
        }
    }
    }).open();
}

希望这可以帮助。

PS:如果提到 autoOpen ,最后的 open 方法不是强制性的:true

于 2012-10-22T12:24:56.273 回答
0

您的编辑链接按钮的名称中应包含 ID。类似于“lnkEdit_{id}”的东西,其中 {id} 是项目的实际 ID。

在 $("#transferToLink").click 事件中,从 $(this) 中解析出 Id 并将其设置在表单上的 HiddenValue 字段中。

在对话框的 Transfer 按钮事件中读取此值。

它并不优雅,但您的选择受限于这种类型的设置,而且我之前使用过这种技术没有任何问题。唯一的缺点是您需要一个额外的隐藏字段来存储临时值

于 2012-10-19T12:38:33.723 回答