如何将预格式化的HTML元素从WebMethod发送到jQuery

时间:2011-11-16 01:01:32

标签: c# javascript jquery asp.net sql

标题类别解释了我正在尝试做什么。 这样做的原因是我试图在我的ASP.NET C#网站上实现无限滚动。我之前使用ListView控件完成了延迟滚动的“效果”,但这是一个使用DataPager和几个HiddenFields的肮脏和“慢”技巧。

我想从WebMethodjQuery发送完全预格式化的HTML元素,以便我可以将其附加到容器<div>上。

实际上我需要在WebMethod中呈现的是容器<div>内的一堆对象,类似于Facebook Wall。我以前有一个ListView(B)嵌套在另一个ListView(A)中。单个ListView中的每个<ItemTemplate>都有ListViewItemsListView。 (A)代表一个墙贴和(B)与(A)的主键相关的评论。

无论如何,我是从右角看这个问题还是我应该找出其他方法呢?请分享你的想法。

谢谢。

1 个答案:

答案 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