我有一个缓冲的分组网格,我想滚动查看某一行(我有记录和记录' s / row' s索引)。
我尝试过无证件
grid.getView().scrollRowIntoView(index)
但这仅适用于无缓冲网格,因为它调用
view.getRow(row)
只返回当前渲染的行,而不是那些未渲染的行。
是否有可用的官方功能我忽略了或者我还能做些什么来滚动到正确的记录?
答案 0 :(得分:4)
bufferedRenderer插件有一个函数scrollTo(recordIdx)
。
调用gridpanel
的{{1}}或gridview
或dataview
中没有任何功能,因此我猜您必须直接从您的网格中调用bufferedRenderer.scrollTo
。
更新:请注意,如果商店为空,则可能无法调用getView().bufferedRenderer.scrollTo
,因为这会导致框架中出错。原因是scrollTo
取得了记录索引;如果索引低于0,它将被设置为0,如果它是store.Count()或更高,它将被设置为store.Count() - 1(如果存储为空,则为-1)。然后,从商店(scrollTo
)获取记录,当且仅当商店为空时才返回getAt(index)
,然后检查该记录确实是模型:
null
然后导致错误
未捕获的TypeError:无法读取null的“isModel”属性
因此,在调用if(record.isModel)
之前,您必须始终检查商店是否为空:
scrollTo
答案 1 :(得分:2)
这个问题已在Sencha论坛中转发,where Gary Schlosberg of the Sencha Support team回答:
您是否尝试过
ensureVisible
配置?回调选项提到了使用BufferedStore。