2009-05-22 63 views
0

這裏是我的問題:如何外部頁/內容加載到一個DIV

我已經做創建的操作的菜單/列表(如果與接受一個數據源,如列表視圖,甚至是控制由這將是更容易Gridview與模板化的列)。

這些操作都需要一個特定的表單來執行,而且我已經在分離的aspx頁面中創建了所有這些表單。

問題是:當我在列表中選擇任何操作而無需刷新頁面或使用iframe時,在div內加載這些頁面/窗體的最佳方式是什麼?

回答

4

使用jQuery(正如我理解你的行爲是鏈接到您的形式):

$(document).ready(function() { 
    $('a.yourActionClass').click(function(event) { 
     event.preventDefault(); 
     var url = $(this).attr('href'); 
     $.get(url, function(response) { 
      $('div#yourDivForForm').html(response); 
     }); 
    }); 
}); 

$(document).ready(function() { 
    $('a.yourActionClass').click(function(event) { 
     event.preventDefault(); 
     var url = $(this).attr('href'); 
     $('div#yourDivForForm').load(url); 
    }); 
}); 

新增:

如果要返回「全「帶形式的ASPX頁面:

$(document).ready(function() { 
    $('a.yourActionClass').click(function(event) { 
     event.preventDefault(); 
     var url = $(this).attr('href'); 
     $.get(url, function(response) { 
      var page = $(response); 
      var form = $('form', page); 
      $('div#yourDivForForm').prepend(form); 
     }); 
    }); 
}); 
+0

hi eugene ..謝謝你的幫助。 事實是,我根本不習慣jquery ...在你最後一個示例中(用於加載完整頁面)如何爲每個服務加載一個不同的頁面(表單)? – 2009-05-25 14:19:18

1

這正是Ajax的用途。 首先創建一個XMLHttpObject並用它來打開一個URL

var req; 

    function loadXMLDoc(url) { 
    // branch for native XMLHttpRequest object 
    if (window.XMLHttpRequest) { 
     req = new XMLHttpRequest(); 
     req.onreadystatechange = processReqChange; 
     req.open("GET", url); 
     req.send(null); 
     // branch for IE/Windows ActiveX version 
    } else if (window.ActiveXObject) { 
     req = new ActiveXObject("Microsoft.XMLHTTP"); 
     if (req) { 
      req.onreadystatechange = processReqChange; 
      req.open("GET", url); 
      req.send(); 
     } 
    } 

} 

響應會回來通過processReqChange事件處理程序。

function processReqChange() { 
    // only if req shows "complete" 
    if (req.readyState == 4) { 
     // only if "OK" 
     if (req.status == 200) { 
      // process the result 
      document.getElementById("mydiv").innerHTML = req.responseText; 
     } else { 
      alert("There was a problem retrieving the XML data:\n" + req.statusText); 
     } 
    } 
} 

只需將「mydiv」替換爲要填寫的div的id即可。

Peter

相關問題