2010-08-04 101 views
0

我有一個帶有repeater \ datalist控件的asp.net頁面。我在頁面加載期間綁定這個網格,並顯示相冊的前20個縮略圖。是否有可能使用Ajax(Jquery)從DataList Repeater獲取HTML?

可以有多個頁面,我有一個尋呼機1 2 3.當用戶點擊第二頁(2)時,我去獲取第二套相冊縮略圖並顯示。

目前這是一個回傳,當我顯示第二頁整個頁面被刷新。

現在甚至有可能使用Ajax \ jquery獲取htmls的第二頁,並在其上顯示所有縮略圖嗎?這樣頁面永遠不會回發帖子,我可以避免頁面刷新?

回答

0

您有幾種選擇:

  • ASP:爲的UpdatePanel你的中繼

優點:容易做到的,只是包裝你的中繼用的asp:UpdatePanel控件。

缺點:你將發送一個帖子回到所有視圖狀態的服務器,服務器運行整個頁面的生命週期,只是回頁面的一部分。其他缺點here

  • jQuery.load插入剛剛頁面

的部分優點:也很容易實現,你就需要管理加載正確的頁面在你的aspx頁面的GET請求(即將?page = 2添加到查詢字符串並在服務器端進行處理)。之後,您將轉發器包裝在一個div中,您可以在客戶端識別並執行jQuery.load()(請查看文檔here

缺點:您仍將發送整頁回到客戶。此外,如果您依賴ViewState在DataList中進行回發,則可能會導致該問題。

  • 純Ajax調用來獲取數據,並使其回到客戶端上

優點:最佳的什麼被髮送回服務器和從服務器到客戶端方面。

缺點:您將在客戶端使用您自己的渲染/模板引擎替換DataList/Repeater以使其工作。

+0

asp:UpdatePanel不是一個選項,因爲我沒有部署巨大的。net ajax dlls – kheya 2010-08-04 23:39:34

+0

在你的第三選擇:說我用一個jQuery函數替換網格,循環結果和構建網格。這對文本數據來說很好,但我有縮略圖,我只是從數據庫中獲取文件路徑。 您的解決方案要求我將元素(jquery)的src屬性設置爲這些圖像路徑?這些不會向圖像文件的Web服務器發送一個單獨的http請求嗎? 我每頁有50個縮略圖。那麼我最終會向服務器發送50個單獨的http請求以獲取每個頁面的縮略圖圖像?不對? 我想發送一個http ajax請求並獲取所有縮略圖。可行? – kheya 2010-08-05 00:06:52

+0

我的輸入按鈕不起作用。無法添加新行。大段落 – kheya 2010-08-05 00:07:41

0

HTML 5具有內聯圖像數據的概念,無需使用單獨請求拖動位的href。直到第5版在這裏考慮使用jQuery來獲取給定頁面#作爲輸入的縮略圖網址列表。使用非常少的jQuery,您可以使用最輕的服務器往返重新繪製您現在使用中繼器渲染的內容。

如果您關心多個圖像GET,則需要使用子域(images.yoursite.com)引用圖像路徑以使瀏覽器將圖像與主頁面數據並行拉出。瀏覽器使用最多2個併發線程來拉取頁面數據有一些奇怪的規則,但前提是這些源不在同一個根URL。

相關問題