Extjs - 在面板中设置焦点字段

Posted

技术标签:

【中文标题】Extjs - 在面板中设置焦点字段【英文标题】:Extjs - Set focus field in panel 【发布时间】:2013-07-04 02:42:36 【问题描述】:

我定义了一个扩展 Ext.form.Panel 的面板,别名是:“example”。 在我的视口中,我为我的东部初始化 xtype = 'example'。 我希望当我折叠该面板(示例)时,我的第一个字段(日期字段)将聚焦 我尝试了下面的一些代码,但没有工作

//1. not working
,listeners: 
     afterrender: function(field) 
         field.focus(true, 100);
     

//2. not working
Ext.getCmp('myDatefieldId').focus(true, 20);

我该怎么做谢谢

【问题讨论】:

【参考方案1】:

您能否提供更多信息? 你使用控制器(mvc 模式?) 如果是,您可以尝试在控制器中处理焦点。

我们的中心有两个 DateFields 并通过 Ext.ComponentQuery.query('[itemId=dtf-faelligkeit-ab]')[0].focus() 似乎工作完美(使用 chrome 开发者控制台测试)

在我的视口中,我添加了一个折叠监听器:

region: 'east',
                layout: 'border',
                id: 'viewport-east-todo-panel',
                title: 'Todo - Detailansicht',
                labelWidth: 100,
                collapsible: true,
                collapsed: true,
                split: true,
                width: 340,
                minSize: 340,
                maxSize: 400,
                items: [
                    
                        region: 'center',
                        xtype: 'main.todo.TodoDetails'
                    
                ]
                ,
                listeners: 
                    collapse: function () 
                        Ext.ComponentQuery.query('[itemId=dtf-faelligkeit-ab]')[0].focus();
                    
                

在 collapse-Listener 中,我关注日期字段(itemID: 'dtf-faelligkeit-ab')。

希望能帮到你

【讨论】:

非常感谢。我使用我的面板已折叠:true 并且我使用 expand: function (p, eOpts) 和上面的第二个代码并且它可以工作。但我不知道为什么我上面的第一个代码不起作用:) 很抱歉,我无法帮助您解决第一个代码问题。我是一个 extjs-rookie,处理事件对我来说总是一个新问题。希望有人在那里阅读您的问题并知道如何处理它。祝你好运;)

以上是关于Extjs - 在面板中设置焦点字段的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 小部件标签字段无法在远程存储列表中设置选定值

在外部加载的 swf 中设置输入字段的焦点

加载商店后如何在网格中设置值? EXTJS3

如何在 ExtJS 面板中设置列表样式?

Extjs 4.1 - 如何在树形面板中设置 singleExpand false

在 QWebView 中设置文本输入焦点