如何解决所选行和列的数据表数据
我正在尝试通过选定行的名称引用我的数据表中的特定列,但它选择该行还是该特定列的所有数据,而不选择选定行的特定列值:
var columnValue1 = getTable().column('ALEN:name').rows( { selected: true } ).data();
var columnValue2 = getTable().rows( { selected: true } ).column('ALEN:name').data();
输出:
Columnvalue1:不仅输出所选行的列“ ALen”,还输出完整的所选行 Columnvalue2:不仅输出选定行,还输出“ Alen”列的所有行的数据
解决方法
正如评论中所说,这取决于DataTable的初始化(ajax或预充电数据),以及您是否选择了一个或多个选择...
多个选择示例:
如果您具有使用ajax的数据表,则可以直接访问字段:
var rowsData = getTable().rows({ selected: true }).data().filter(x => x.FieldName <= 0).toArray()
如果您没有ajax并且已预付费数据:
var rowsData = getTable().rows({ selected: true }).data().filter(x => x[15] <= 0).toArray()
最后,您可以遍历rowsData,因为它是带有字段的对象(行)的数组。
单选示例:
如果您具有使用ajax的数据表,则可以直接访问字段:
var fieldValue = getTable().row({ selected: true }).data().FieldName
如果您没有ajax并且已预付费数据:
var fieldValue= getTable().row({ selected: true }).data()[15]
,
我创建了一个函数,该函数在名称上进行索引,然后确定其在所选行中的位置,例如,我想返回以名称Alen选择的行的值:
var columnValue2 = getTable().rows( { selected: true } ).data()[0][tab.getColumnIndex("Alen")];
这是我的功能:
this.getColumnIndex = function(ColumnName){
var index;
//dataTableOption : function to declare option of datatable like columns-searching
for (let i=0;i<this.dataTableOption.columns.length; i++ ){
if ( this.dataTableOption.columns[i].name == ColumnName){
index =i;
}
}
return index ;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。