如何将预格式化的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>都有多个其他ListViewListViewItems。(A)代表墙上的帖子和(B)绑定到(A)主键的评论。

不管怎样,我是从右下角看这个问题还是我应该找到其他方法来做这件事?请分享你的想法。

谢谢。

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

你可以从你的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