我正在使用Extjs 4.2。我有一个网格面板,它有> 1000行,并且打开了多重选择。
单击我要选择的按钮并使用以下内容移至第20行:
grid.getSelectionModel().select(20, false, true);
grid.getView().getNode(20).scrollIntoView();
如果我在第20行附近,这可以正常工作但是它正确地选择第20行但是它没有跳到第20行而我得到错误:TypeError:grid.getView(...)。getNode(...)未定义
任何帮助非常感谢。
答案 0 :(得分:2)
Rixo让我走上正确的道路询问缓冲网格。
我发现这个例子包含了所有内容: http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid/buffer-grid.html
这是允许我跳到第20行的行:
grid.view.bufferedRenderer.scrollTo(20, true);
答案 1 :(得分:1)
问题是当你远离它时没有这样的Node,因为GridView根本不会因为性能问题而破坏HTML元素。您可以使用gridView.focusNode(record)代替:
var record = gridView.getStore().getById(20);
gridView.focusNode(record);
在焦点之后选择记录:
grid.getSelectionModel().select(record);
答案 2 :(得分:0)
首先使用以下选择您的记录:
var rec = grid.store.findRecord('id',rowId);
使用以下选择记录:
grid.getSelectionModel().select( rec );
使用以下方式聚焦记录:
grid.getView().focusRow( );