Extjs 2.2下拉框作为Editor的时候提交Value的问题

在Extjs项目中我们经常用到EditorGridPanel。在相关的列字段中编辑相关的值然后提交到后台。只是在遇到Combobox作为Editor的时候.在更改编辑之后显示的值是ValueField而不是DisplayField这不是我们愿意看到的


1、Gridpanel中的cm声明代码.注意看[所属分店]声名的Editor:

var cm = new Ext.grid.ColumnModel({   
            defaults : {  
                sortable : true,  
                width : (centertabs.getInnerWidth()-10)/10  
            },  
            columns : [sm,{  
                header : '部门ID',  
                dataIndex : 'deptId',  
                hidden : true  
            },{  
                header : '所属分店ID',  
                dataIndex : 'branchId',  
                hidden : true  
            },{  
                header : '所属分店',  
                dataIndex : 'branchName',  
                width: 100,  
                editor : branchbox,  
                id : 'branchcombo',
                renderer : Ext.DongWan.comboRenderer(branchbox)
                  
            },{  
                header : '部门名称',  
                dataIndex : 'deptName',  
                editor : new Ext.form.TextField({  
                    allowBlank : false  
                })  
            }, {  
                header : '部门备注',  
                dataIndex : 'deptRemark',  
                editor : new Ext.form.TextField({  
                    allowBlank : false  
                })  
            },{  
                header:'创建时间',  
                dataIndex:'createTime',  
                renderer : function(value){     
                        if(value instanceof Date){     
                            return new Date(value).format("Y-m-d");     
                        }else{     
                            return value;     
                        }    
                },  
                editor : new Ext.grid.GridEditor(  
                            new Ext.form.DateField({  
                                    format:'Y-m-d',  
                                    type:'date'  
                                    }))  
            }]  
        });


2、在上面的代码中我们声名了Editor为combobox。但是它显示的ValueField的值。

我们要显示DisplayField的值就要用到上面的这个方法:

renderer : Ext.DongWan.comboRenderer(branchbox)


3、renderer : Ext.DongWan.comboRenderer(branchbox)方法

 //下拉框格式化
        comboRenderer : function(combo) {  
		    return function(value) {  
		        var record = combo.findRecord(combo.valueField, value);  
		          
		        return record  
		                ? record.get(combo.displayField)  
		                : value;  
		    }  
		}

 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值