我有一个定义如下的ListGrid:
ListGrid lgrid = new ListGrid();
ListGridField first = new ListGridField("first",first");
ListGridField second = new ListGridField("second ",second ");
lgrid.setFields(first, second);
lgrid.setShowFilterEditor(true);在布局中调用show()之后,如何将键盘焦点放在第一个过滤器编辑器字段中?
提前通知。
发布于 2016-05-10 16:49:01
根据您的用例(这将有助于提供更集中的答案),您发布的解决方案可能不是您真正需要的解决方案,因为如果您在ListGrid上滚动,它可能会触发一个新的数据获取(如果有更多的记录要显示),并因此将光标移动到过滤器编辑器(如果您的用户正在编辑一些记录,那么移动到过滤器行的游标将不是她想要发生的!)
在这种情况下,您可能只想在listGrid.show()语句之后调用listGrid.show(),或者在用于获取数据的某个按钮的ClickHandler中调用等等。
不管怎样,你也不需要计时器。这样做是可行的:
listGrid.addDataArrivedHandler(new DataArrivedHandler() {
@Override
public void onDataArrived(DataArrivedEvent event) {
grid.focusInFilterEditor("fieldToFocus");
}
});发布于 2016-05-10 06:26:54
我得到了解决方案,它的focusInFilterEditor,--这是一个在数据到达网格后设置焦点的示例:
// Put the focus on the first listGrid field when is loaded
listGrid.addDataArrivedHandler(new DataArrivedHandler() {
@Override
public void onDataArrived(DataArrivedEvent event) {
Timer t = new Timer() {
public void run() {
if(listGrid.getFilterEditorCriteria() == null){
listGrid.focusInFilterEditor("fieldToFocus");
}
}
};
t.schedule(600);
}
});https://stackoverflow.com/questions/37115204
复制相似问题