如何在onActiveCellChanged事件中从过滤的Slickgrid中获取正确的行ID

时间:2013-11-12 12:28:33

标签: javascript slickgrid

我使用最新的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与数据表中的行不匹配。

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

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

1 个答案:

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

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