datatables试图均匀划分的列宽

问题描述 投票:2回答:1

正在处理数据表代码,我已经这样指定了:

{className: "editable alignCenter", "targets":"_all"}

基本上我所有的列都是动态变化的,所以我只想针对可编辑的列,我有一个dataattribute,在其中我可以识别该字段是主键字段还是标识字段。

所以我想修改,如果定义了该字段,则保留该字段,所有其他字段都应该是可编辑的,而该字段可以省去

尝试这样

var editableTargets = $('#layout').attr('data-array'); - this is coming as a comma seperated list like 0,1,2,3,4,5

"columnDefs": [
            {className: "editable alignCenter", "targets": [editableTargets]}
        ]

但似乎不起作用

@@ andrewjames感谢您的快速提示,它正在起作用,

现在,我正尝试从editableTargets中找到最后一个数组,并删除可编辑的aligncenter类,并向其添加其他类,并为其添加排序:false

请给我一个开始

javascript jquery datatables
1个回答
1
投票

关于您更新的笔记:

现在,我正尝试从editableTargets中找到最后一个数组,并删除可编辑的aligncenter类,并向其添加其他类,并为其添加排序:false

再次,我可能会误解了,但是...这里有一些指针可以帮助您:

假设您有这个:

var editableTargets  = "0,1,2,3,4,5";

以下代码将其分为两个数组-一个仅包含final元素,另一个包含其他所有元素:

// convert to an array of numbers:
var array = editableTargets.split(",").map(Number);
// remove the last element, and capture it as "i":
var i = array.pop();
// create an array containing the last element:
var lastItem = [];
lastItem.push(i);

因此,array[0,1,2,3,4]lastItem[5]

也许有更好的方法可以用JavaScript做到这一点,但这应该可以。

现在您应该可以在列defs部分中使用它们-像这样(但是我还没有测试过这一部分!):

"columnDefs": [
  { className: "editable alignCenter", "targets": array },
  { sorting: false, "targets": lastItem }
]
© www.soinside.com 2019 - 2024. All rights reserved.