我使用最新的SlickGrid和dataView。
我订阅onActiveCellChanged
事件以对选择行的用户做出反应,并使用以下内容获取第一列的单元格内容:
grid.onActiveCellChanged.subscribe(function(e, args)
{
var cell = args.cell;
var row = args.row;
vat cell_contents = data[row][grid.getColumns()[0].field];
这完全有效,直到我过滤表格。然后args.row与数据表中的行不匹配。
如何将过滤后的行号(在事件中给出)映射到我想要读取的数据的实际行?
即。过滤后的网格可以生成一行数据,但实际上可能是实际数据表的第十行。我需要能够读取所选可见行中的数据。
答案 0 :(得分:2)
经过多次尝试,我终于成功了。对于那些想要看的人来说,我做的是:
grid.onActiveCellChanged.subscribe(function(e, args)
{
var cell = args.cell;
var row = args.row;
var row_data = dataView.getItem(row); // Read from dataView not the grid data
var cell_contents = row_data['id'];
此解决方案可补偿重新排序的列以及过滤的行。