如何在jQuery UI对话框中加载页面

时间:2012-11-26 23:17:10

标签: jquery razor

我正在尝试在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 Modal dialog onclick

dialog in jQuery

how to load a page with jquery ui dialog

Load another page in the dialog

Jquery dialog to open another page

1 个答案:

答案 0 :(得分:2)

原来,问题是我试图加载一个包含header,body,html元素的完整页面。 jQuery不喜欢那样。

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

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

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

    $('#selector')。click(function(){
                    $( '#对话框导入')ATTR( 'src' 中, '/数据集/ ImportSpreadsheet / ...')。                 $( '#对话框导入')对话框( '开放');
                   });

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

    我将继续研究,但有同样问题的人可能会觉得这很有用。