标题有点解释了我正在尝试做的事情。
这样做的原因是我试图在我的 ASP.NET C# 网站上实现无限滚动。我以前用 ListView
实现了延迟滚动的“效果”控制,但这是一个使用 DataPager
的肮脏且“缓慢”的技巧和几个 HiddenFields
.
我想从 WebMethod
发送一个完全预格式化的 HTML 元素至 jQuery
这样我就可以将它附加到容器上 <div>
.
实际上我需要在 WebMethod
中呈现的内容是容器内的一堆对象 <div>
类似于 Facebook 墙。我之前拥有的是 ListView
(B) 嵌套在另一个 ListView
(A)。各一<ItemTemplate>
来自单个 ListView 的多个 ListViewItems
另一个ListView
. (A) 表示墙贴和 (B) 绑定(bind)到 (A) 的主键的评论。
无论如何,我是从正确的 Angular 看待这个问题,还是应该想出一些其他的方法来做到这一点?请分享您的想法。
谢谢。
最佳答案
您可以只从您的 web 方法返回一个包含 html 的字符串,然后在“成功”功能上将其直接抽取到您页面上的 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
关于c# - 如何将预先格式化的 HTML 元素从 WebMethod 发送到 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145336/