2010-02-11 83 views
0

我正在使用jquery ajax方法从Web方法获取数据并使用DOM呈现数据(类似于Google搜索结果).B'coz从网络方法是巨大的,我想分页结果。为此,我需要创建对应于基于no的页码的按钮。 Web方法从数据库中检索到的记录。因此,我在页面上取了一个div。在Web方法中,只要我可以找到从数据库中获取的记录数,我想创建按钮并添加到此div和每页显示10条记录。就我所知,无法从Web方法访问放置在asp.net页面上的任何内容。在那种情况下,我该如何对结果进行分页?从asp.net web方法动态添加控件到页面

请帮忙。

回答

0

如果你使用JQuery AJAX,你可以通过做之类的语句重新创建客户端上的用户界面:

$("<input/>").attr("type", "button").click(function() { .. }).appendTo("parentElementselector"); 

$.each(webmethodresults, function(i, item) { 
    //Create UI here using approach illustrated above 
}); 

而重新编程为每个页面。

编辑或找到您可以绑定到客户端的第三方表格控件。 MS AJAX 4有一些客户端的JS组件,或者有一些JQuery的......但是无论哪种方式,如果使用JQuery通过AJAX流式传输,您必须在客户端上创建。

+0

对不起,布莱恩,我不清楚上面的陈述。请你举个例子来解释我吗? – user269527 2010-02-11 14:52:49

+0

是的,您可以使用JQuery来构建您所需的分页UI。如果您使用JQuery以JSON格式将结果流式传输给您,这就是最简单的方法。您可以自己构建UI,也可以使用第三方组件或MS AJAX 4客户端控件。 – 2010-02-11 16:36:27

0

下面是关于如何处理这种情况的替代建议:当页面加载确定将多少记录被返回

  1. 将此分为每页显示多少条记录(10)。
  2. 根据每页10条记录的页数来添加分页控件。
  3. 只查询数据库,查找您将在给定页面上显示的10条记录。如果数据非常庞大,您不会希望将其全部加载到内存中。这可以通过一个方法签名来完成,该方法签名接受每个页面有多少记录以及您所在的当前页面。
+0

嗨,Jon, 我能够找到显示我的数据所需的分页控件的数量。我的数据是使用web方法从数据库中检索的,它来自不同的表,它们之间没有任何关系。基本上,我正在检索数据从这些表基于一个条件并加载到通用列表中,最后连接它们以返回到Jquery ajax方法。那么如何才能将结果限制到特定的数字,因为我正在使用多个带格式的特效?我添加分页控件到asp.net页面b'coz我不知道他们需要多少页面加载? – user269527 2010-02-11 14:44:06