3

我正在使用带有 dataView 的最新 SlickGrid。

我订阅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 与数据表中的行不匹配。

如何将过滤后的行号(在事件中给出)映射到我要读取的数据的实际行?

即过滤后的网格可以产生一行数据,但实际上可能是实际数据表的第 10 行。我需要能够读取所选可见行中的数据。

4

1 回答 1

3

经过多次尝试,我终于做到了。对于其他来寻找的人,我所做的是:

    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'];

此解决方案补偿重新排序的列以及过滤的行。

于 2013-11-12T13:02:39.417 回答