我已将slickgrid表从2.3.2更新为2.4.3。 我所有的代码都能正常工作,例如编辑器,格式化程序,后期渲染等。 在旧版本的网格中,我找到了一种以编程方式选择任何行并使单元格可编辑的方法,然后调用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版本相同。