2011-03-05 105 views
0

我已經使用教程http://www.devcurry.com/2010/06/load-page-dynamically-inside-jquery-ui.html動態地加載一個aspx頁面到jQuery UI對話框中,而不使用iframeJQuery UI對話框無法動態加載頁面內容?

例如。

$(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寫它仍然在對話框

沒有內容

我正在使用JQuery 1.3.2與ASP.Net的UI 1.7.3 Mvc

我知道有很多關於這個話題在stackoverflow上的問題/答案,但沒有一個人似乎成功回答響我的問題,因爲這些問題似乎一年前不知道是否有人會盡快回到我身邊。

上顯示在對話框

內容有任何想法謝謝

回答

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標籤Example.aspx = content_form

+0

div id = content_form – porps89 2011-03-05 21:11:42

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'); 
    }); 

注意我沒有測試過這個,但它是我做的。希望你明白這個主意。

+0

試過的div並沒有改變任何東西加負載的方法已經在周圍的jQuery從一開始就一直沒有改變。我認爲問題是我打開對話框之前頁面內容已加載和顯示設置爲false – porps89 2011-03-05 16:38:52

+0

作爲一個測試,在您的HTML指定一個可見的div,並嘗試使用jquery.load加載div。如果你能看到內容,ajax負載正常工作。如果沒有,您可能會遇到實際從服務器獲取響應的問題。如果你有內容,那麼至少你已經縮小了這個問題。還有哪些瀏覽器需要測試? – Sumit 2011-03-05 17:28:21

+0

看到我的編輯與替代解決方案。 – Sumit 2011-03-05 17:37:28

相關問題