【问题标题】:How to Display IList<T> with Paging如何使用分页显示 IList<T>
【发布时间】:2018-08-11 21:34:20
【问题描述】:

我有一个错误列表,我需要在浏览器中显示分页,但是,我不是从数据库中提取数据,而是基于一些业务逻辑构建这个模型,这个列表可能是多达 1000 件或更多。所有项目都需要在前端可用,很多项目滚动对用户来说很麻烦,这就是我在这里需要分页机制的原因。

注意:我使用的是 asp.net MVC 框架

还有,这是我的错误模型

public class ErrorViewModel
{
    public string ErrorType { get; set; }
    public string ErrorMessage { get; set; }
    public string AdditionalMessage { get; set; }
}

【问题讨论】:

  • 你绑定的是什么类型的控件? This 可能会有所帮助。
  • @Poosh 纯html
  • @Spectarion PagedList 在每次点击页码时都会执行一次服务器往返,并在页面上显示新项目,但我需要通过分页显示页面上的所有内容,我无法从服务器获取它们没有保存在任何地方。或许,你可以给我推荐一个好的 js 库……
  • DataTable 非常适合您的需求。

标签: c# asp.net-mvc pagination


【解决方案1】:

您可以使用DataTables 插件,该插件提供客户端搜索和分页(服务器将所有数据传递给客户端,不推荐,但这是您要求的)。

首先,下载 DataTables 插件并将其包含在您的项目和布局文件中。

其次,您需要使用 Razor 语法渲染 HTML 表格。

@model IEnumerable<ErrorViewModel>

<table class="data-table">
    <thead>
        <tr>
            <th>Error type</th>
            <th>Error message</th>
            <th>Additional message</th>
        </tr>
    </thead>
    <tbody>
        @foreach(var item in Model)
        {
            <tr>
                <td>@Model.ErrorType</td>
                <td>@Model.ErrorMessage</td>
                <td>@Model.AdditionalMessage</td>
            </tr>
        }
    </tbody>
</table>

第三,将此代码添加到布局文件的末尾(在导入 jQuery 和 DataTables 插件之后。)。

<script>
    $(document).ready(function() {
        $('.data-table').DataTable();
    });
</script>

此处的示例:jsbin.com

【讨论】:

    【解决方案2】:

    根据 Spectarion 的建议,您可以使用 DataTables 插件。由于您使用的是 ASP.net MVC,我建议使用DataTables.ASPNet,它为 jQuery DataTables 提供了一个很好的服务器端支持和帮助程序。使用方便,只需按照文档下载示例项目即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多