2012-04-11 22 views
0

私はハンドラを持っています:onCalendarEditFuncグリッドから選択したセルを編集するためのものです。私が選択した行の最初のセルを編集できるようrow: this.store.indexOf(selection[0]),は罰金とされて動作します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 
     }); 

    }, 

:今のところ私はこれを持っています。しかし、私の行には複数の列があるので、column:には選択したセルの値を指定します。あなたが選択したセルを作るボタンの機能を編集したい場合(ユーザーが選択した正確なセルを検出するために

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

ExtJs3または4ですか? – sha

+0

はい、そのExtJS 4 – Leron

+0

エディターを起動する列インデックスを知っていますか? – sha

答えて

1

おかげでこのような何かを試してみてください私の場合と同じように編集可能)ここにあなたができることがあります。それは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' 
      }, 

重要な部分はここに、あなたは編集機能では、次のsyntaxisを使用することができます

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 
     }); 
+0

ええ、代わりに '3'をハードコーディングするのは、行の選択した列の値を持つ変数でなければなりません。とにかく私はworkaraoundソリューションを見つけたので、ここに投稿します。 – Leron

+0

私はそこに変数を置く - それを計算することができます。 – sha

関連する問題