【问题标题】:Datatables 1.10 add column for Edit and Delete buttonsDatatables 1.10 为编辑和删除按钮添加列
【发布时间】:2015-09-04 18:49:59
【问题描述】:

我无法理解如何将列“添加”到 Datatables 1.10。我想做这个:

从字面上看,“添加”是什么意思?如果我理解文档,您实际上并没有添加列,您只使用此处显示的“columnDefs”函数用“生成的内容”覆盖目标: https://datatables.net/examples/ajax/null_data_source.html

这让我想到,现在我必须从我的服务器端代码中添加新的“空”列,以便为我的按钮留出位置。这似乎是错误的,或者至少效率不高。于是我用 columnDefs 找到了render。

我基本上不明白其中的区别,但这些似乎是唯一的选择,似乎都不能“创建/添加”新列。

`"data": "phone",
   "render": {
       "_": "plain",
       "filter": "filter",
       "display": "display"
    }

`

问题是在哪里/如何添加额外的列,如何将按钮添加到新列中。

*我知道有类似的问题,但大多数似乎是针对 1.9 或假设您了解该列的来源。

【问题讨论】:

    标签: javascript jquery ajax datatable


    【解决方案1】:

    使用fnRowCallback 添加/更新行数据。

     "fnRowCallback": function (nRow, aData, iDisplayIndex) {
            // to get datatable settings
            var oSettings = (this.fnSettings) ? this.fnSettings() : this;
            $("td:last", nRow).html('your add and delete button')
            return nRow;
        },
    

    更新:如果您不想在服务器代码中添加假列,请使用此行

    $("td:last", nRow).parent().append('<td>your add and delete button</td>')

    这一行找到每一行的父 tr 并附加一个带有按钮的 td

    【讨论】:

    • 感谢您的快速回复,但同样的问题。这会覆盖最后一列数据,而不是“添加”额外的列......这是否意味着我必须在服务器端创建一个假列才能用按钮覆盖?
    • 是的,你必须这样做。如果您不想创建另一列,只需使用 append 而不是 html 这不会替换现有的最后一列数据。我建议使用假列
    • 这很好,它添加了外部列,但是当“响应”激活时,它会将列推到响应视图中最后显示的列。也是分页中列重复的问题。很好的尝试,如此接近! ...我还没有尝试过服务器端。
    • 如果你想要这个没有任何问题,那么只需使用服务器端的假列就可以了,它会完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多