2010-10-30 32 views
0

我在asp.net頁面中有一個垂直的左側菜單。使用jQuery .loadasp.net中的jquery.load

,我嘗試在midlle div來加載其他aspx頁面(內容DIV)

取決於鏈接click.Like這樣的:

  $('#LeftMenu1_HyperLink1').live("click", function(event) { 
      event.preventDefault(); 
      $("#ContentDiv").load("mypage.aspx"); 

     }); 

此解決方案不起作用,我跟着jquery doc.Do我應該在mypage.aspx中添加一些東西,我發現所有的例子,我發現谷歌搜索不起作用。

有人可以給我一個工作鏈接或一個例子。

+1

定義「不起作用」 - 函數是否觸發?查看Firebug的「網絡」選項卡,查看是否提出請求。另外,你知道'mypage.aspx'不能返回一個完整的帶有'head'和'body的HTML結構,但是隻有一個片段? – 2010-10-30 08:58:06

回答

1

您正在將一個完整的HTML文檔嵌入到<div>元素中。結果將如下所示:

<html> 
    <head> 
    . 
    . 
    </head> 
    <body> 
     <div> 
      <html> 
       <head> 
       . 
       . 
       </head> 
       <body> 
       . 
       . 
       </body> 
      <html> 
     </div> 
    . 
    . 
    </body> 
</html> 

瀏覽器將無法執行任何操作。嘗試在<iframe>元素中加載您的頁面,而不是<div>

1

你可以(僅與所請求的內容回覆短信)做的最好的事情是有一個容器,在裏面,像這樣:

<div id="ContentDiv"> 
    <div id="ContentInner"> 
    </div> 
</div> 

這是爲了防止多個ID在頁面做.load()時。由於.load()需要選擇你,然後用它來獲取內容,就像這樣:

$('#LeftMenu1_HyperLink1').live("click", function(event) { 
    event.preventDefault(); 
    $("#ContentDiv").load("mypage.aspx #ContentInner"); 
}); 

現在這個加載內心的<div>到這個頁面。


某些方面的考慮這種方法,你正在做:

  • 腳本/風格在<head>就不會被加載
  • 確保您<form><div id="ContentInner">
+0

Nick,Content div不在mypage.aspx中,它在Default.aspx中包含垂直左側菜單。當用戶單擊左側菜單元素(鏈接)時,我想將mypage.aspx加載到ContentDiv中。是否有可能?謝謝 – Cooly 2010-10-30 11:08:46

+0

@Cooly - 你需要一些ID或類,你可以在你正在加載的頁面中定位...否則你正在加載該頁面的所有*。 – 2010-10-30 11:10:16