0

你好; 我有个问题。我想在网页上打开一个弹出窗口(Jqueryui 弹出窗口)。但是我不能。如何正确制作?

看法:


    grid.Column("", format: (item) => Html.ActionLink("Click", "", "", new { @customerId = ConvertUtil.ToInt(item.Id) }, new { @class = "popupLink" })),

OR

grid.Column("", format: (item) => Html.ActionLink("Click", "Edit", "Customer", new { @customerId = ConvertUtil.ToInt(item.Id) }, new { @class = "popupLink" })), Jquery Code:
$(".popupLink").click(function () { jQuery('#dialog').dialog('open'); });

控制器



    public ActionResult Edit()
        {
            return View();

        }

我还需要 id 值。不仅弹出。我想打开编辑弹出窗口。如何打开编辑弹出任何行?

4

2 回答 2

1

首先,你需要停止点击事件的默认动作

$(".popupLink").click(function (e) {
    $('#dialog').dialog('open');

    e.preventDefault();
});

这将显示空对话框(当然,如果您#dialog的视图中有容器)。在显示对话框之前,您必须加载正确的视图。我会这样做:

var url = $(this).attr('href');
$('#dialog').load(url);

最后,整个解决方案:

$(".popupLink").click(function (e) {
    $('#dialog').load($(this).attr('href'));
    $('#dialog').dialog('open');

    e.preventDefault();
});
于 2012-08-22T12:48:38.887 回答
1

以下解决方案可以在 ActionLink 上重复使用,而无需修改源文档。在加载完成之前,它也不会显示对话框:

$("a.popuplink").live("click", function (evt) {
    evt.preventDefault();        
    $("<div></div>").insertAfter(this);
    $.ajax({
        url: this.href,
        context: this
    }).done(function (data) {
        $(this).next('div').html(data);
        $(this).next('div').dialog();
    });
});

于 2012-08-22T13:07:42.017 回答