为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过更改一个列编号字段来更新另一列编号字段

如何通过更改一个列编号字段来更新另一列编号字段

慕姐4208626 2021-09-30 10:32:00
我有一个网格,其中有两个widgetColumn数字字段。我想如果我更改数字字段一(Test1),那么数字字段(Test2)的值应该是自动填充的。这是我的代码。我尝试了很多听众,但没有奏效。Ext.onReady(function() {var count = "a";Ext.create('Ext.data.Store', {    storeId: 'simpsonsStore',    fields: ['name', 'email', 'phone'],    data: {        'items': [{            'name': 'Lisa',            "email": "lisa@simpsons.com",            "phone": "555-111-1224"        }, {            'name': 'Bart',            "email": "bart@simpsons.com",            "phone": "555-222-1234"        }, {            'name': 'Homer',            "email": "home@simpsons.com",            "phone": "555-222-1244"        }, {            'name': 'Marge',            "email": "marge@simpsons.com",            "phone": "555-222-1254"        }]    },    proxy: {        type: 'memory',        reader: {            type: 'json',            root: 'items'        }    }});Ext.create('Ext.grid.Panel', {            title: 'Simpsons',            selType: 'rowmodel',            plugins: [                Ext.create('Ext.grid.plugin.RowEditing', {                    clicksToEdit: 1,                    autoCancel: false                })            ],            store: Ext.data.StoreManager.lookup('simpsonsStore'),            columns: [{                    text: 'Name',                    dataIndex: 'name',                    editor: {                        xtype: 'textarea',                        allowBlank: false,                        listeners: {                            change: function (field, newValue, o, e) {                                debugger;                                var text = field.value;                                var record = e.record;                                var selectedModel = this.up('grid').getSelectionModel().getSelection()[0];                                selectedModel.set('Name', text);                                selectedModel.set('email', text);                            }                        },                    }                }
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

一种解决方案是编辑记录的所需字段(在您的情况下为“Test2”),如下所示:


{

    xtype: "widgetcolumn",

    header: "Value",

    dataIndex: "Test1",

    itemId: "landedGrossQty",

    flex: 1,

    widget: {

        xtype: "numberfield",

        minValue: 0,

        listeners: {

            change: function(field, newValue, o, e) {

                let record = field.getWidgetRecord(); //getting the store record

                record.data.Test1 = newValue; //setting the value of this field to its new value

                record.data.Test2 = newValue * 2 //setting the value of Test2 field to Test1*2;

                record.commit(); //commiting the changes to the store

            }

        }

    }

}


查看完整回答
反对 回复 2021-09-30
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信