我有ExtJS网格(editorGridPanel),其中一个单元格是CustomDateField。 如何禁用手动输入此字段内的日期?
我尝试将监听器添加到编辑器,但没有按键事件(!)来禁用输入。 另外 - 我尝试向整个网格添加监听器,=但是当编辑器处于活动状态时,它不会被触发网格按键事件。
请帮助我。这是字段定义:
{
header : "Release Date",
dataIndex : 'releasedate',
sortable : true,
width: 90,
locked: true,
renderer: function(value, metaData, r) {
metaData.attr = rowcolor(r.data.status);
return value;
},
editor : new Ext.ux.form.CustomDateField({
allowBlank: true,
format: 'm/d/Y',
width : 120
/* this not works VVVV */
,listeners: {
'keypress' : function (field_, new_, old_ ) {
$.log( "Field", field_ );
$.log( "New", new_ );
$.log( "Old", old_ );
}
}
})
},
谢谢!
答案 0 :(得分:0)
这是答案:
editor : new Ext.form.DateField({ /*Ext.ux.form.Custom*/
allowBlank: true,
format: 'm/d/Y',
width : 120,
enableKeyEvents: true,
listeners: {
'keydown' : function (field_, e_ ) {
// $.log( "keydown", field_, e_ );
e_.stopEvent();
return false;
}
}
})
答案 1 :(得分:0)
要防止手动输入,只需将编辑器的“可编辑”属性设置为false即可。这是默认的。
您的网格列将如下:
header: 'Test',
dataIndex: 'xyz',
editor: {
xtype: 'datefield',
editable: false,
}
这是框架本身提供的更好的解决方案。