Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript extjs4选择器itemid列编辑器_Javascript_Extjs4 - Fatal编程技术网

Javascript extjs4选择器itemid列编辑器

Javascript extjs4选择器itemid列编辑器,javascript,extjs4,Javascript,Extjs4,我正在尝试选择列的itemid编辑器,但无法从控制器截获事件 视图: 控制器: ...... this.control( '#fatturaVendita #txtCodiceArticolo': { afterrender: function (f, e) { alert("change");

我正在尝试选择列的itemid编辑器,但无法从控制器截获事件

视图:

控制器:

......
        this.control(
               '#fatturaVendita  #txtCodiceArticolo':
                 {
                     afterrender: function (f, e) {
                         alert("change");
                     },

                     specialkey: function (f, e) {
                         alert(specialkey);
                         var me = this;
                         if (e.getKey() == e.ENTER) {
                             if (getWin(me.getIdWin(), '#txtCodiceArticolo').getValue() == "") {
                                 Ext.create('MyApp.view.fatturaVendita.Ricerca', { grd: "grdCorpoFatturaVendita", store: "ArticoloStore", dataDescrizione: "Descrizione", testoDescrizione: "Descrizione", idCampo: f.id, codice: f.name, descrizione: "DescrizioneArticolo" }).show();
                             }
                         }
                     },
                 },
   ......
我的网格列和编辑器中的所有字段都使用itemid,我只在windows“fatturaVendita”中使用id。 但是这个代码不起作用。我该怎么办=(

与此示例类似,但我无法使其工作。我似乎无法截获网格textfield的事件SpecialKey:

**

更新:

** 谢谢你的帮助,现在可以工作了,但我不明白。我有一个多窗口应用程序。我对控件使用itemid,而对每个窗口只使用id。如果我有两个窗口,并且我有相同的itemid(txtCodiceArticolo),extjs如何确定我要释放哪个事件?事实上,如果我使用

          this.control({  
  '#idWindows #itemId': {
                specialkey: function (f, e) {
                     if (e.getKey() == e.ENTER) {
                             alert("2");

                     }
                 }
        }

。我不仅为列编辑器工作。

我在您的小提琴中发现了一个严重错误,即没有调用控制器的
init()
函数,因此您的事件处理程序将永远不会运行

如果在
Ext.application
函数中包含控制器,则框架会自动调用
init()
函数,如下所示:

Ext.application({
    controllers: [
        'YourApp.Controller'
    ],
});
但是,如果您试图手动实例化控制器,则需要手动调用
init()

Ext.define('YourApp.Controller', {...});
var ctrl = Ext.create('YourApp.Controller');
ctrl.init();
这是对这一点的解释

我让你的小提琴工作了,但似乎只有回车键触发了
specialkey
事件。请查看

更新:

您有多个窗口,每个窗口都有不同的id,比如它们的id是“window1”、“window2”等。在控制器中,您将有如下内容:

this.control({
    '#window1 #txtCodiceArticolo': {
        specialkey: {...}
    },
    '#window2 #txtCodiceArticolo': {
        specialkey: {...}
    }
})

这意味着第一个“specialkey”属于window1的txtCodiceArticolo,第二个“specialkey”属于window2的txtCodiceArticolo。

你能创建一个提琴来演示你的问题吗?嗨,因为我使用sencha architecth作为我的视图,所以我尝试了一个make un jfiddle。我想拦截控制器,t的特殊关键事件我的列的extfield,分配了一个项目idI已经这样做了。但未能截获任何事件。=(为什么?
this.control({
    '#window1 #txtCodiceArticolo': {
        specialkey: {...}
    },
    '#window2 #txtCodiceArticolo': {
        specialkey: {...}
    }
})