有的时候comboBox render的时候不好使,你改变了值但是显示还是上一次的值(再次双击才看到改变后的值)...

本文讨论了如何在项目中重写renderer方法来解决数据绑定问题,并提供了具体实现步骤和实例。通过实例展示了如何在编辑字段渲染器中修改记录值,确保数据的一致性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

renderGridValueObject : function(value, record, id, name) {
                if (record) {
                    if (this.getValue()) {
                        if (this.getValue() == this.getRawValue()
                                && this.isReset) { // 增加isReset判断 by gaojun
                            this.reset();
                            return value;
                        }
                        record.editing = true;
                        record.set(id, this.getValue());
                        record.set(name, this.getRawValue());
                        record.editing = false;
                        // record.dirty = false;
                        this.reset();
                        return record.get(name);
                    } else {
                        return value;
                    }
                }

            },

 
===========================================================================================
EditorEditFieldRenderer : function(combo,value,record,idField,nameField,code,name){
        // 获得下拉框的数据集
        var storeVal = combo.getStore();
        var displayField = combo.displayField;
        //选择的顺序号
        var index = storeVal.find(code?code:'id', value);
        //通过顺序号得到相应的record对象
        var storeRecord = storeVal.getAt(index);
        var displayText = "";
        if (storeRecord == null) {
            displayText = value;
        } else {
            displayText = storeRecord.get(displayField);
        }
        // 修改record值 by gaojun
        if(record.get(nameField) != undefined && record.get(nameField) != '' && combo.getRawValue() != '') {
            record.editing = true;
            record.set(idField,combo.inputValue || combo.getValue());
            record.set(nameField,combo.getRawValue());
            record.editing = false;
            record.dirty = false;
            combo.reset();
        }
        combo = null;
        return displayText;
},
我在项目中一般重写renderer方法 即上面第一种方法可以解决上面问题

转载于:https://www.cnblogs.com/yingy/p/3465709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值