gpt4 book ai didi

javascript - 从 datatables.js 中的数据属性获取行

转载 作者:行者123 更新时间:2023-11-27 23:50:46 24 4
gpt4 key购买 nike

我正在努力寻找正确的方法来做到这一点。基本上,我有一个 id 值数组,与表中选择的行相对应。为了构建此列表,我使用以下代码。 this.options.ajaxId 是访问传递到表的数据对象中的 Id 值的键。

this.getRowData(target)[this.options.ajaxId]

我的getRowData函数在哪里:

getRowData: function (HTMLrow) {
return this.dataTable.row(HTMLrow).data();
},

这很好用,但随后我对下一步感到困惑,即在通过分页、排序或搜索重新绘制表格时重新选择正确的行。我的计划是循环遍历 ID 并查找哪个表行对应于该 ID 值,但我找不到用于输入键值搜索对并返回 html 行的函数。我的想法如下:

this.dataTable.findRow( key, value );
// then my usage would be the following:
var that = this;
_.each(this.selectedList, function (id) {
var row = that.dataTable.findRow( that.options.ajaxId, id );
// code to select the row
});

我还没有写它,但我知道我可以循环遍历每一行,获取该行的数据,并根据我正在寻找的内容进行检查,但在用户查看 100 行的情况下并且只有一个我想避免的选择。

有什么见解吗?

谢谢

最佳答案

SOLUTION #1

如果行 ID 存储在某个字段中,您可以使用以下代码根据行 ID 定位并突出显示行。

// Index of column containing IDs
var colIdIndex = 0;

// List of row IDs
var rowIds = ['2', '4', '6'];

// Find indexes of rows which have IDs in the desired column
var rowIndexes = table.rows().eq(0).filter( function (rowIdx) {
return ($.inArray(table.cell( rowIdx, colIdIndex ).data(), rowIds) !== -1)
? true
: false;
});

// Select rows based on array of found row indexes
table.rows(rowIndexes)
.nodes()
.to$()
.addClass('selected');

参见filter() API方法了解更多详情。

请注意,此方法仅适用于客户端处理模式。

演示

参见this jsFiddle用于代码和演示。

SOLUTION #2

同时适用于客户端和服务器端处理模式的替代方法是使用 createdRow打回来。

例如:

// Index of column containing IDs
var colIdIndex = 0;

// List of row IDs
var rowIds = ['2', '4', '6'];

var table = $('#example').DataTable({
createdRow: function( row, data, dataIndex ) {
if ( $.inArray(data[colIdIndex], rowIds) !== -1) {
$(row).addClass('selected');
}
}
});

演示

参见this jsFiddle用于代码和演示。

关于javascript - 从 datatables.js 中的数据属性获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com