【问题标题】:Jquery datatables in razor view with thousands of rows/records具有数千行/记录的剃刀视图中的 Jquery 数据表
【发布时间】:2021-12-16 11:18:32
【问题描述】:

我正在开发一个项目,该项目在 razor 视图中调用外部服务器并检索我使用的 json 文件(WebRequestStreamReader on response)建一个表。

我无权访问生成 json 文件的数据库;这些是由另一家公司创建的,我只有 json 文件的链接。

表格是动态的,我不知道列数和行数,直到我开始读取 json 文件,该文件为我提供了第一个字段中的列数和行数。

我正在做的是在我的剃须刀代码中创建数据表的html,即:

// table header: start
_datatable = "<div class='dataTable'> <table id='gdtTable' class='display nowrap' style='width:100%'> <thead> <tr>";

...等等...当我修复了所有 html 后,我在脚本部分通过 jquery 呈现数据表。此外,json 中的一些值是以动态模式呈现的子表。

当我有几百行的表时,代码就像一个魅力,但一些 json 文件呈现了数千行的表,我让用户等待在运行时构建 html。

在创建完整的 html 时如何开始渲染前几百行是否有任何提示/建议?

提前感谢您的帮助。

【问题讨论】:

  • 如果您使用 js 渲染 HTML 以便可以将其转换为 datatables - 那么您增加了太多开销。而是使用 JS 将数据重新格式化为数据表所期望的格式并直接传递。如果您对数据表进行了分页(为什么不这样做),那么它只会呈现该页面所需的 html。需要时间的是渲染->html->转换为数据表。
  • 同样,您可以使用 datatables ajax 调用来仅加载所需的数据 - 虽然您将加载整个 json,但 datatables 可以告诉您它想要哪些页面/行,您可以剪切/切片/相应地拼接 json 数据。一次将整个数据加载到数据表还是一个页面(并且每次都重新加载 json)是否更好取决于您的用例以及您的用户如何使用数据。最好将 json 加载(直接加载到数据表中)而不是继续重新加载它,但提供另一个选项。

标签: c# jquery json razor datatables


【解决方案1】:

@freedomn-m 谢谢,最后我听从了你的建议“如果你在你的数据表上有分页(你为什么不这样做),那么它只会呈现该页面所需的 html。”对于第一个数据在数据表中,并且“使用 JS 将数据重新格式化为数据表期望的格式并直接传递”许多数据在以模态视图呈现的子数据表中,因此使用 jquery 处理仅当用户想要加载特定数据时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多