首页 > 解决方案 > 有没有办法在 slickgrid 2.4.3 中以编程方式选择一行?

问题描述

我已将我的 slickgrid 表从 2.3.2 更新到 2.4.3。我的所有代码都运行良好,编辑器、格式化程序、postrender 等......在旧版本的网格中,我找到了一种以编程方式选择任何行并使单元格可编辑的方法,并调用 onSelectionChange 回调函数。升级到新版本后,我无法做同样的事情。

我为网格制作了一个包装构造函数,在这个类中我写道:

...
this.getGrid().setSelectionModel( new Slick.RowSelectionModel() );
....

/**
 * @param {Number} values.id
 * @param {String} values.column
 * @param {Boolean} values.forceEdit
 */
this.selectRow = function ( values ) {
        var row = this.getDataView().getIdxById( values.id );
        if ( values.column ) {
            var cell = this.getGrid().getColumnIndex( values.column );
            this.getGrid().gotoCell( row, cell, values.forceEdit );
        } else {
            setTimeout( function ( ) {
                self.getGrid().setSelectedRows( [values.id] )
            }, 200 )
        }
    }
...

通过这种方式,单元格在编辑模式下变得正确,因为编辑器出现在网格中,但未正确选择行并且未调用 onSelectionChange 回调。该方法与我在以前版本的 slickgrid 中使用的方法相同。

标签: javascriptselectionslickgrid

解决方案


推荐阅读