首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListGrid将焦点放在FilterEditor中

ListGrid将焦点放在FilterEditor中
EN

Stack Overflow用户
提问于 2016-05-09 11:56:01
回答 2查看 330关注 0票数 1

我有一个定义如下的ListGrid:

代码语言:javascript
复制
ListGrid lgrid = new ListGrid();
ListGridField first  = new ListGridField("first",first");
ListGridField second = new ListGridField("second ",second ");
lgrid.setFields(first, second);
lgrid.setShowFilterEditor(true);

在布局中调用show()之后,如何将键盘焦点放在第一个过滤器编辑器字段中?

提前通知。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-10 16:49:01

根据您的用例(这将有助于提供更集中的答案),您发布的解决方案可能不是您真正需要的解决方案,因为如果您在ListGrid上滚动,它可能会触发一个新的数据获取(如果有更多的记录要显示),并因此将光标移动到过滤器编辑器(如果您的用户正在编辑一些记录,那么移动到过滤器行的游标将不是她想要发生的!)

在这种情况下,您可能只想在listGrid.show()语句之后调用listGrid.show(),或者在用于获取数据的某个按钮的ClickHandler中调用等等。

不管怎样,你也不需要计时器。这样做是可行的:

代码语言:javascript
复制
listGrid.addDataArrivedHandler(new DataArrivedHandler() {
    @Override
    public void onDataArrived(DataArrivedEvent event) {
        grid.focusInFilterEditor("fieldToFocus");
    }
});
票数 1
EN

Stack Overflow用户

发布于 2016-05-10 06:26:54

我得到了解决方案,它的focusInFilterEditor,--这是一个在数据到达网格后设置焦点的示例:

代码语言:javascript
复制
   // 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);
        }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37115204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档