2013-06-06 45 views
0

我使用checkboxmodel插件的複選框列。但是,我想要的是,'如果我檢查列的某些單元格將是可編輯'...我搜索了很多,但沒有luck.I正與MVC模式工作,因爲插件我不知道該如何處理呢CheckboxModel使一些特定的領域可編輯

/**Grid View**/ 

    plugins: [ 
     Ext.create('Ext.grid.plugin.CellEditing', { 
      clicksToEdit: 2 
     }) 
    ], 
    selType: 'cellmodel', 
    selModel: Ext.create('Ext.selection.CheckboxModel', { 
     checkOnly: true, 
     listeners: { 
      selectionchange: function(model, records) { 
       if (records[0]) { 
        //make any cell of a field editable 
       } 
      } 
     } 
    }), 
    { 
     header:'name', 
     dataIndex:'name'}, 
     { 
      header:'Quantity', 
      dataIndex:'quantity', 
     } 

這裏如果我檢查任何行,我想使電網的數量字段編輯...這將是很好的,如果有人可以幫助...

回答

1

試試這個:

1)創建編輯或者參考插件實例:

var editor = Ext.create('Ext.grid.plugin.CellEditing', { 
      clicksToEdit: 2 
     }); 

2)在網格插件定義使用這個實例:

plugins: [ 
     editor 
    ] 

3)修改selModel定義是這個樣子:

selModel: Ext.create('Ext.selection.CheckboxModel', { 
     checkOnly: true, 
     listeners: { 
      selectionchange: function(model, records) { 
       if (records[0] && !editor.editing) { 
        editor.startEdit(records[0], 2); // 2 is the number of column you want to edit 
       } 
      } 
     } 
    }), 

使用這個解決方案在檢查網格行時只能編輯一個單元格。你也需要實現額外的邏輯來停止編輯以前編輯的單元格,以防選擇更改等。希望這個提示能夠幫助你。

+0

因爲mvc模式我應該在哪裏聲明var編輯器 –

+0

其實沒有必要在外面創建編輯器變量。您可以使用:Ext.create('Ext.grid.plugin.CellEditing',{ clicksToEdit:2, pluginId:'celledit' });然後在selectionchange事件中:var editor = model.view.ownerCt.getPlugin('celledit'); –

+0

什麼將在model.view.ownerCt –