【问题标题】:Adding controls dynamically to the page from asp.net web method从asp.net web方法动态添加控件到页面
【发布时间】:2010-02-12 00:37:38
【问题描述】:

我正在使用 jquery ajax 方法从 web 方法获取数据并使用 DOM 呈现数据(类似于 google 搜索结果)。因为从 web 方法返回的数据很大,我想对结果进行分页。为此,我需要根据编号创建与页码相对应的按钮。 web方法从数据库中检索的记录数。所以我在页面上取了一个div。在web方法中,一旦我能找到从数据库中获取的记录数,我想创建按钮并添加到这个div 并每页显示 10 条记录。据我所知,无法通过 Web 方法访问放置在 asp.net 页面上的任何内容。在这种情况下,我如何对结果进行分页?

请帮忙。

【问题讨论】:

    标签: asp.net pagination


    【解决方案1】:

    如果您使用的是 JQuery ajax,您可以通过执行以下语句在客户端上重新创建 UI:

    $("<input/>").attr("type", "button").click(function() { ..  }).appendTo("parentElementselector");
    
    $.each(webmethodresults, function(i, item) {
         //Create UI here using approach illustrated above
    });
    

    并以编程方式为每个页面重新创建。

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

    【讨论】:

    • 对不起,Brian,我对上面的陈述不清楚。你能举个例子解释一下吗?
    • 是的,您可以使用 JQuery 构建您想要的分页 UI。如果您使用 JQuery 以 JSON 格式将结果流式传输给您,这是唯一的方法。要么自己构建 UI,要么使用第三方组件,或者 MS AJAX 4 客户端控件。
    【解决方案2】:

    以下是关于如何处理这种情况的替代建议:

    1. 页面加载时间决定了您将返回多少条记录。
    2. 除以您希望每页显示的记录数 (10)。
    3. 根据每页 10 条记录的页数添加分页控件。
    4. 仅在数据库中查询您将在给定页面上显示的 10 条记录。如果数据非常庞大,您无论如何都不想将其全部加载到内存中。这可以通过一个方法签名来完成,该签名接受每页有多少条记录以及您所在的当前页面。

    【讨论】:

    • 嗨乔恩,我能够找到显示我的数据所需的分页控件的数量。我的数据是使用 Web 方法从数据库中检索的,它来自没有关系的不同表。基本上我正在根据条件从这些表中检索数据并加载到通用列表中,最后将它们连接起来以返回到 Jquery ajax 方法。那么如何将结果限制为特定数字,因为我正在使用多个存储过程?以及如何将分页控件添加到 asp.net 页面 b'coz 我不知道页面加载需要多少个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2010-10-17
    • 2018-04-26
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多