2016-10-03 53 views
0

在我PROGRAMM我使用Tagfield等荫使用Ext.form.field.TagTagfield应用emptyText

requires: [ 
     'Ext.grid.filters.Filters', 
     'Ext.form.field.Tag' 
    ], 

后来在代码中,我ausing tagfield后不能正常工作。

代码:

{ 
    xtype: 'tagfield', 
    emptyText : "Hello", 
    growMax : 10, 
matchFieldWidth : false, 
valueField: 'title', 
displayField:'title', 
createNewOnBlur:true, 
parentGrid : me, 
editable : true, 
filterPickList: true, 
dataIndex:header.getAttribute("DATAINDEX"), 
queryMode: 'local', 
disabled: true, 
    } 
Note : STore is loading from some other method and everything is working fine if I remove emptyText 

之后,一切工作正常,但是当我使用emptyText : "Hello"或赋予价值emptyText,emptyText正在出现,但组合工作。无法从组合中选择值。我试图让小提琴手,但在所有的小提琴手组合应用emptyText后。

我在想什么?感谢帮助。

回答

4

在您的tagField中使用它而不是emptyText。

listeners:{ 
       afterrender:function(combo){ 
        var me = this, 
        values = me.getValueRecords(); 
        me.inputEl.set({ 
        'placeholder': values.length ? '' :'Hello'}); 
       }, 
       change:function(tag){ 
        var me = this, 
        values = me.getValueRecords(); 
        me.inputEl.set({ 
        'placeholder': values.length ? '' :'Hello'}); 
       } 
     } 
+0

你能解释一下我你在做什么。 – David

+0

谢谢它的工作原理。我想知道错误是什么。这是实现这一目标的途径之一,但它很好地知道它出错的地方。 – David

+0

我只是为标记字段而不是emptyText创建占位符。 Afterrender只是检查长度,如果它是真的,那么在tagfield inputEl中设置一个文本。 –

0

添加监听器来解决这个问题:

listeners: { 
       afterrender: function (ctl, e, eOpts) { 
       var values = ctl.getValueRecords(); 
       ctl.inputEl.set({ 'placeholder': values.length ? '' :'Your text'}); 
       }, 
       change:function(ctl){ 
       var values = ctl.getValueRecords(); 
       ctl.inputEl.set({ 'placeholder': values.length ? '' :'Your text'}); 
       } 
} 
+1

谢谢这是一个古老的问题,但很多感谢回答。我会检查并回复给你。 – David