2

我正在尝试在 jQuery 对话框中加载另一个页面。我已经看过很多文章(包括下面的文章)。似乎公认的技术是:

$(function () {
        $(document).ready(function () {
                var d1= $('#dialog-import').dialog({
                resizeable: false,
                height: 600,
                modal: true,
                autoOpen: false,
                buttons: {
                    'My button1': function () {
                        $(this).dialog('close');
                    },
                    Cancel: function () {
                        $(this).dialog('close');
                    }
                }
            });

            d1.load('/DataSets/ImportSpreadsheet/91D55CAC-6C2C-46EE-8730-0DBFE26D1D92').dialog('open'); 

        });
    });

这将打开对话框,包括完整的内容和我的两个对话框按钮,但是,这两个对话框按钮不起作用(我无法单击它们)。

代码的其他替代方案,例如:

 $('#dialog-import').load('/DataSets/ImportSpreadsheet/' + a, function () {
                $('#dialog-import').dialog('open');
            });

在 Google Developer Console 中导致此错误:

Uncaught TypeError: Object [object Object] has no method 'dialog' 

我一定错过了一些愚蠢的东西。但是,我真的一直在寻找它,没有任何运气。

谢谢。

这就是我想要做的,尝试了他们的建议但没有运气:

jQuery 模态对话框 onclick

jQuery中的对话框

如何使用 jquery ui 对话框加载页面

在对话框中加载另一个页面

Jquery 对话框打开另一个页面

4

1 回答 1

2

事实证明,问题在于我试图加载一个包含标题、正文、html 元素的完整页面。jQuery 不喜欢这样。

我找到了两种可能的解决方案:

  1. 使用 C# MVC 局部视图。确保局部视图不包含 header、html 等元素。使用原始问题中的代码可以正常工作。

  2. 使用 iFrame 元素,并加载您要更改 src 属性的页面,如下面的代码所示。

    $('#selector').click(function () {
    $('#dialog-import').attr('src','/DataSets/ImportSpreadsheet/...'); $('#dialog-import' ).dialog('open');
    });

尽管如此,我还是对这么多人说他们不必担心标题/正文标签感到困惑,就像这个帖子隐含地说:ASP.NET Mvc jquery ui dialog as view or partialview?

我将继续研究,但遇到我同样问题的人可能会发现这很有用。

于 2012-11-28T02:02:11.197 回答