【问题标题】:JQuery Datatables plugin - attaching JSON to a Datatable with some conditionsJQuery Datatables 插件 - 在某些条件下将 JSON 附加到 Datatable
【发布时间】:2026-01-22 14:15:01
【问题描述】:

在 JQuery Datatables 插件中,我们如何将 JSON 附加到启用 Datatable 的表中

  1. 启用 Datatable 的表中有一些列不在 JSON 中
  2. 有些列是 JSON 格式,但我们不想在启用 Datatable 的表中显示它

#1 的示例

表格列

  person_id, first_name, last_name, age

JSON

  {{'person_id' : 1, 'first_name' : 'John', 'last_name' : 'Doe'}, ....}

#2 的示例

表格列

   product_id, manufacturer_name

JSON

  {{'product_id' : 1, 'manufacturer_name' : 'Product X', 'manufacturer_code' : '144ctow4'}, ....}

【问题讨论】:

    标签: jquery jquery-plugins datatables


    【解决方案1】:

    DataTables 仅接受 <table> 内容或 javascript 数组。 JSON 必须被实例化并从对象转换为适当的数组。如果您有两个数据源,则必须在使用适当的信息实例化 DataTable 之前将它们组合起来。

    1)如果您为“启用 Datatable 的表中有一些列不在 JSON 中”提供一些上下文,我可以推荐一些 javascript 来网格化新数据。

    2)您发布的那些字符串是否代表您的“JSON”,如果是这样,我认为它的格式不正确。一组以逗号分隔的子对象将是一个数组,例如: [{'person_id' : 1, 'first_name' : 'John', 'last_name' : 'Doe'}, ....]

    编辑:关于评论中添加的信息,要处理删除等 CRUD 操作,您可以使用DataTables blog 中概述的技术。

    【讨论】:

    • 1) 这些列与数据无关,而是与操作相关。例如,假设我们每行都有一个具有删除按钮的列。该列与数据无关,但它仍然存在 2)只是表示,而不是实际的 JSON
    • 然后你有几个选择,你可以将任何你想要的数据添加到你准备提供给 DataTables 的数据中(在 DOM 上或在数组中),或者你可以使用其中一个DataTables 提供的回调钩子(如 fnRowCallback 或 fnDrawCallback)以便稍后添加。对于“删除”按钮之类的东西,第二个选项在语义上更有意义。与往常一样,发布更多代码,或者更好的是,提供链接;)