如何将预格式化的HTML元素从WebMethod发送到jQuery
本文关键字:WebMethod jQuery 元素 HTML 格式化 | 更新日期: 2023-09-27 18:14:39
标题解释了我要做的事情。这样做的原因是,我试图实现无限滚动在我的ASP。. NET c#网站。我之前已经用ListView
控件完成了延迟滚动的"效果",但这是一个肮脏和"缓慢"的技巧,使用了一个DataPager
和几个HiddenFields
。
我想从WebMethod
发送一个完全预格式化的HTML元素到jQuery
,以便我可以将其附加到容器<div>
上。
实际上我需要在WebMethod
中渲染的是一堆容器<div>
中的对象,类似于Facebook墙。我之前拥有的是嵌套在另一个ListView
(a)中的ListView
(B)。单个来自单个ListView的每个<ItemTemplate>
都有多个其他ListView
的ListViewItems
。(A)代表墙上的帖子和(B)绑定到(A)主键的评论。
不管怎样,我是从右下角看这个问题还是我应该找到其他方法来做这件事?请分享你的想法。
谢谢。
你可以从你的webmethod返回一个字符串,其中包含html -然后将其直接泵入页面上的'success'函数的html元素。注:我认为这是'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