JQuery UI对话框无法动态加载页面内容?

时间:2011-03-05 15:33:01

标签: asp.net-mvc jquery-ui-dialog dynamic

我使用了教程http://www.devcurry.com/2010/06/load-page-dynamically-inside-jquery-ui.html来动态地将aspx页面加载到jquery ui对话框中而不使用iframe

例如

$(function() {
        $('<div>').dialog({
            autoOpen: true,
            modal: true,
            open: function() {

                $(this).load('Example.aspx');




            },
            height: 400,
            width: 400,
            title: 'Dynamically Loaded Page'
        });

当我调试此页面时,即使页面包含内容,它也只是加载一个没有任何内容的空白对话框。我用路径写了

例如$(this).load('/Home/Example.aspx');

我甚至在函数中添加了检查它是否正在加载

例如$(this).load('/Home/Example.aspx', function(){alert(Load Successful);});确实返回true YET仍然没有对话框中的内容

我正在使用Jquery 1.3.2和带有ASP.Net Mvc的ui 1.7.3

我知道在stackoverflow上有很多关于这个主题的问题/答案,但它们似乎都没有成功回答我的问题,因为这些问题似乎已经一年不确定是否有人会尽快回复我。

关于在对话框中显示内容的任何想法

谢谢

2 个答案:

答案 0 :(得分:0)

只是想一想,尝试将选择器更改为

$('<div></div>').dialog({

你引用的例子也是使用jquery 1.4.2和jquery ui 1.8.1, 你能升级吗?

编辑: 你也可以这样试试。

$(function() {
    $('<div></div>').load('Example.aspx', {}, 
        function(data) {})
        .dialog(
        {
        autoOpen: true,
        modal: true,
        height: 400,
        width: 400,
        title: 'Dynamically Loaded Page'
        }).dialog('open');
    });

注意我没有测试过这个,但它是我的方式。希望你明白了。

答案 1 :(得分:0)

答案是......

$(function() {
        $('<div></div>').hide().load('Home/Example #content_form', function() {
        $(this).dialog({

                autoOpen: true,
                modal: true,
                height: 400,
                width: 400,
                title: 'Dynamically Loaded Page'
            })

        })

使用带有ID = content_form

标签的Example.aspx