ExtJS的.设置划船单元格值

tyt*_*yty 4 extjs

我有一个带有RowEditing插件的网格.编辑器有两列:一列有组合框,另一列有禁用文本字段.

我需要在更改组合框值后更改文本字段值.

我有combobox听众:

listeners = {
       select: function (combo, records) {
            var editorRecord = myGrid.getPlugin('rowEditPlugin').editor.getRecord();
            editorRecord.data["SomeCol"] = "SomeValue";
       }
}
Run Code Online (Sandbox Code Playgroud)

但是,在另一次调用roweditor之前,textfield中的值不会刷新.

我只需要将文本值设置为单元格,而无需更新存储.而且如果我点击roweditor的取消按钮,我需要将单元格值返回到旧单元格.

感谢您的时间,所有回复和所有帮助.

Dev*_*Dev 5

您可以使用网格的选择模型更改它,如下所示:

   {
     text: 'Type',
     dataIndex: 'type',
     editor: {
         xtype: 'combo',
         typeAhead: true,
         selectOnTab: true,
         displayField:"name",
         listeners: {
               select: function(combo, records) {
                   myGrid= this.up('grid');
                   var selectedModel = this.up('grid').getSelectionModel().getSelection()[0];
                   //selectedModel.set('dataIndexOfNextCol', "Success");
                   val = combo.getValue();
                    if(val == 'type1'){
                         Ext.getCmp('textFld').setValue("success");
                     }
                     else{
                         Ext.getCmp('textFld').setValue("failure");
                     }
           }
  },
  {
    text: 'Item',
    dataIndex: 'item',
    editor: {
               xtype: 'textfield',
               id: 'textFld'
           }
  }
Run Code Online (Sandbox Code Playgroud)

你必须在update上提交更改.所以你可以调用edit事件监听器,

listeners: {
    edit: function(editor, e) {
        e.record.commit();
    }
},
Run Code Online (Sandbox Code Playgroud)

作为参考,请看一下这个DEMO

  • 我找到了而不是`editor.down('textfield [name ="name"]').setValue("value");`它也可以用`editor.form.findField("name")来完成.setValue ( "值");` (2认同)