2011-11-16 19 views
2

標題排序解釋了我正在嘗試執行的操作。 原因是我試圖在ASP.NET C#網站上實現無限滾動。我以前用ListView控件完成了惰性滾動的「效果」,但這是一個骯髒且「緩慢」的技巧,使用了DataPager和幾個HiddenFields如何將預先格式化的HTML元素從WebMethod發送到jQuery

我想發送完全預格式化的HTML元素,從WebMethodjQuery,以便我可以將它添加到容器<div>

實際上,我需要在WebMethod中呈現的是與Facebook Wall類似的容器<div>中的一組對象。我之前有一個ListView(B)嵌套在另一個ListView(A)。單個單個ListView中的每個<ItemTemplate>都有另一個ListView的多個ListViewItems。 (A)代表牆柱和(B)與(A)的主鍵相關的評論。

無論如何,我從右上角看這個問題,還是應該找出一些其他的方式來做到這一點?請分享你的想法。

謝謝。

回答

2

你可以從webmethod中返回一個字符串和html中的字符串,然後直接將它在「成功」函數中輸入到頁面上的html元素中。 NB我認爲這是'html()'元素 - 或者你可以使用.append(文本);

使用jQuery

$(document).ready(function() { 
    // Add the page method call as an onclick handler for the div. 
    $("#Result").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/GetHTMLFormatted", 
     data: "{}", 
     success: function(msg) { 
     // Replace the div's content with the page method's return. 
     $("#Result").html(msg.d); // or .append(msg.d); 
     } 
    }); 
    }); 
}); 

一種更好的方式做雖然它返回一個JSON結構,並使用模板庫發出你的HTML結構。請參閱http://stephenwalther.com/blog/archive/2010/11/30/an-introduction-to-jquery-templates.aspx

+2

僅供參考:jQuery模板不再適用。 JSRender是替代品:http://weblogs.asp.net/stevewellens/archive/2011/11/09/goodby-jquery-templates-hello-jsrender.aspx –

+1

.tmpl()不再開發。一個基於render.js的新的(jquery-ui)插件即將推出。還有其他的模板插件(小鬍子,純等等) – roselan

+0

正是我需要的人,很好的信息。感謝你的分享! ;) - 編輯:我也在尋找這樣做的方式,並不知道有關StringBuilder類。我想這也會讓事情變得更快更聰明。 – user1027620

相關問題