extjs4 tree panel grid 按每一行的内容指定editor
已有 1918 次阅读2013-3-25 13:32
|个人分类:linux 工具使用|系统分类:IT技术|
目前extjs4 grid 似乎只能对一整列指定editor.
但在使用treepanel时 需要对每个行的数据指定不同的编辑器.
一直没有找到相关的方法,目前自己找了一个变通的方案.
实现如下:
//在cellclick中生成默认的editor,让程序调用到beforeedit
this.on("cellclick",this.onCellClick , this);
onCellClick:function(table , td, cellIndex, rec, tr, rowIndex, e ){
if ( cellIndex==4 ){ //第四行需要编辑
//让onBeforeEdit 被调用
this.columns[4].setEditor( { });
}
}
//在beforeedit 中重置成需要要的editor
this.on("beforeedit",this.onBeforeEdit , this);
onBeforeEdit:function(ed,e ){
var rec=e.record;
var me=this;
var editor= Ext.create( "Ext.form.field.Text" );
var type_info=rec.get("type_info");
var type=rec.get("type") ;
if (type=="int32"){
editor= Ext.create( "Ext.form.field.Text" , {
regex:/^-?\d+$/,
regexText:"必须是数字"
});
}
if ( type=="bool" ){
editor= Ext.create( "Ext.form.field.Checkbox" );
}
//第四行需要编辑
this.columns[4].setEditor(editor );
)