2012-04-11 63 views
0

我有一個處理程序:onCalendarEditFunc,它是從網格編輯選定的單元格。現在我有這樣的:ExtJS從一行中選擇某個單元格

onCalendarEditFunc: function() { 
     var selection = this.getView().getSelectionModel().getSelection(); 
     requires : [ 
      'Ext.grid.plugin.CellEditing', 
      'Ext.grid.column.Column' 
     ] 



     edit = this.editing; 
     console.log(this.getView().getSelectionModel().getSelection()); 
     edit.cancelEdit(); 
    // this.store.insert(0, rec); 
     edit.startEditByPosition({ 
      row: this.store.indexOf(selection[0]), 
      column: 0 
     }); 

    }, 

其中row: this.store.indexOf(selection[0]),工作正常,是呀,我可以從選定的行編輯的第一個單元格。但我的行有多個列,所以我想給column:一個值,它是所選單元格的值。

感謝

Leron

+0

它是ExtJs3還是4? – sha 2012-04-11 15:49:17

+0

是的,它的ExtJS 4 – Leron 2012-04-11 16:06:35

+0

你知道你想要啓動編輯器的列索引嗎? – sha 2012-04-11 16:09:23

回答

2

爲了檢測由用戶選擇(如果要編輯按鈕的功能,這使得所選單元格的確切細胞可編輯,因爲它是在我的情況)這裏是你可以做的。這就是initComponent功能的開頭

initComponent: function(){ 

     this.editing = Ext.create('Ext.grid.plugin.CellEditing'); 
     Ext.apply(this, { 
      title: 'Календар', 
      frame: false, 
      plugins : [this.editing], 
      store: 'CalendarEvents', 
      selModel: { 
       selType: 'cellmodel' 
      }, 

的重要組成部分,這裏是

selModel: { 
      selType: 'cellmodel' 
      }, 

,然後允許您使用以下構造結的編輯功能:

editfunction: function() { 
    var selection = this.view.getSelectionModel().getCurrentPosition(); 
    requires : [ 
     'Ext.grid.plugin.CellEditing', 
     'Ext.grid.column.Column', 
     'Ext.selection.CellModel' 
    ] 



    edit = this.editing; 
    //console.log(this.view.getSelectionModel().getCurrentPosition().column); 

    edit.cancelEdit(); 
// this.store.insert(0, rec); 
    edit.startEditByPosition({ 
     row: selection.row, 
     column: selection.column 
    }); 

}, 

這是它,現在你得到所選單元格的位置,並通過它,所以你可以從那裏開始編輯,或者如同在函數中那樣:

edit.startEditByPosition({ 
      row: selection.row, 
      column: selection.column 
     }); 
1

嘗試這樣的:

edit.cancelEdit(); 
edit.startEdit(selection[0] /* this basically your record */, column /* 3 for example */); 
+0

是的,但是硬編碼'3'它必須是一個變量,其值爲行中所選列的值。無論如何,我發現了一個工作解決方案,所以我要把它發佈在這裏。 – Leron 2012-04-12 05:25:37

+0

我把變量放在那裏 - 你可以計算它。 – sha 2012-04-12 14:15:17

相關問題