标题类别解释了我正在尝试做什么。
这样做的原因是我试图在我的ASP.NET C#网站上实现无限滚动。我之前使用ListView
控件完成了延迟滚动的“效果”,但这是一个使用DataPager
和几个HiddenFields
的肮脏和“慢”技巧。
我想从WebMethod
向jQuery
发送完全预格式化的HTML元素,以便我可以将其附加到容器<div>
上。
实际上我需要在WebMethod
中呈现的是容器<div>
内的一堆对象,类似于Facebook Wall。我以前有一个ListView
(B)嵌套在另一个ListView
(A)中。单个ListView中的每个<ItemTemplate>
都有ListViewItems
个ListView
。 (A)代表一个墙贴和(B)与(A)的主键相关的评论。
无论如何,我是从右角看这个问题还是我应该找出其他方法呢?请分享你的想法。
谢谢。
答案 0 :(得分:2)
你可以从你的webmethod返回一个带有html的字符串 - 然后直接将它直接输入你的页面上的'success'函数中的html元素。 NB我认为这是'html()'元素 - 或者你可以使用.append(text);
使用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