Extjs 3.4:从其他可编辑字段获取值

时间:2012-11-22 06:06:07

标签: extjs combobox datagridcomboboxcolumn

这是我的代码:

{header: "Kabupaten", width: 60, sortable: true, dataIndex: 'id_k',
        renderer: function(value, metaData, record, rowIndex, colIndex, store) {
            return rend_kab(value);
        },
        editor: new Ext.form.ComboBox({
            listeners: {
                beforequery: function(qe){
                qe.combo.store.setBaseParam('id_p', "VALUE FROM THE OTHER FIELD");
                }, 
                scope:this
            },
            store : kab,
            valueField: 'id_k',
            displayField: 'nm_kb',
            triggerAction: 'all'
        })
    },
    {header: "Provinsi", width: 60, sortable: true, dataIndex: 'id_p',
        renderer: function(value, metaData, record, rowIndex, colIndex, store) {
            return rend_prov(value);
        },
        editor: new Ext.form.ComboBox({
            store : prov,
            valueField: 'id_p',
            displayField: 'nm_p',
            triggerAction: 'all'
        })
    }

请参阅文本“来自其他字段的值”,我希望它从同一行中的字段'id_p'更改为值... 我怎样才能做到这一点? 感谢...

2 个答案:

答案 0 :(得分:0)

你可以一起去,

  editor: new Ext.form.ComboBox({
            listeners: {
                beforequery: function(qe){
//If you have checkbox selection model then 
// to get rowIndex need to catch row in which combobox is present. using 
//this.parent.getSelectionModel().getSelected()
                    qe.combo.store.setBaseParam('id_p', gridStore.getAt(rowIndex).get("id_p"));

                }, 
                scope:this
            },
            store : kab,
            valueField: 'id_k',
            displayField: 'nm_kb',
            triggerAction: 'all'
        })

答案 1 :(得分:0)

您可以通过不同方式访问组件/变量:

假设您有两个组合框:

var ComboBoxP = Ext.create('Ext.form.ComboBox',{
        id: 'CBP', //used for example 2
        valueField: 'id_p',
        displayField: 'nm_p'
});

var ComboBoxKB = Ext.create('Ext.form.ComboBox',{
        id: 'CBKB', //used for example 2
        valueField: 'id_k',
        displayField: 'nm_kb',
});

1)只需使用变量。

SetParam( ComboBoxP.getValue() + ComboBoxKB.getValue() );

2)使用id和getComponent(简称getCmp,这不是推荐的方式,因为id必须是唯一的)

SetParam( Ext.getCmp('CBP').getValue() + Ext.getCmp('CBKB').getValue() );

3)在Parent容器中查找组件。对于这种方法,您需要在应用程序中使用良好的结构并熟悉上/下选择器。

 this.up('form').down('combobox').getValue();