2014-07-21 75 views
2

我有一個問題,使我的網格中只有一列可編輯。我的相關網格的配置是:拉力網格:只能編輯一列

me.FeatureGrid = me.add({ 
     xtype: 'rallygrid', 
     width: 700, 
     height:300, 
     scroll:'vertical', 
     columnCfgs: [ 
      { 
       text:'Feature', 
       dataIndex:'Name', 
       width:400 
      },{ 
       text:'Stories', 
       dataIndex:'ObjectID', 
       sortable:true, 
       doSort: function(direction){ 
        //custom sort function 
       }, 
       width:100, 
       renderer:function(oid){ 
        //custom render funciton 
       } 
      },{ 
       dataIndex:'My_Custom_Field', 
       width:180, 
       text:'Status',     
       editor:{ 
        xtype:'combobox', 
        store: Ext.create('Ext.data.Store', { 
         fields: ['Status'], 
         data:[ 
          {'Status':'Committed'}, 
          {'Status':'Not Committed'} 
         ] 
        }), 
        editable: false, 
        displayField: 'Status' 
       }, 
       renderer: function(tcs, meta, record){ 
        //render function 
       } 
      } 
     ], 
     plugins: [ 
      Ext.create('Ext.grid.plugin.CellEditing', { 
       clicksToEdit:1 
      }) 
     ], 
     viewConfig:{ 
      stripeRows:true 
     }, 
     listeners: { 
      beforeedit: function(editor, e){ 
       console.log(e.colIdx); 
       return e.colIdx === 3; //only edit last col 
      }, 
      edit: function(editor, e){ 
       //edit function 
      } 
     }, 
     showPagingToolbar:false, 
     enableEditing:false, 
     context: this.getContext(), 
     store: //feature Store 
    }); 

我想只得到第3列(My_Custom_Field)編輯的,所以用戶無法改變1列的任何東西,2。此外,第三列有一個組合框,只有具有2個值可供選擇,所以我必須將其設置爲不可編輯。我的目標是用戶更新組合框,然後觸發「編輯」事件並保存更新的記錄。

我的第一個問題是,我不想在我的行開始時使用'編輯記錄齒輪',但是由於我添加了插件,它不會消失。就像我說過的,我只希望第三列能夠被用戶編輯。

另外,當我完成單擊組合框並選擇值時,我得到一些奇怪的錯誤。這裏是錯誤的堆棧跟蹤,我不知道我的網格中有什麼是nullHere is the stack trace

回答

3
  • 爲了使細胞不可編輯,添加「編輯:假」給該小區的配置。
  • 要隱藏齒輪,請在網格配置中添加「showRowActionsColumn:false」。
  • 您遇到的錯誤可能與該項目未被正確選擇進行編輯有關。嘗試從網格中刪除「enableEditing:false」配置,看看是否有幫助。
+0

哦,感謝齒輪和編輯:錯誤。但由於某種原因,第三列中的組合框不合作。除非設置了enableEditing:false,否則不會渲染。錯誤仍然在拋出。我一直在搞不同的配置選項,但我可以保證問題出在我的數據存儲上,我正在使用自定義數據存儲來解決另一個問題,並且錯誤只發生在我開始使用定製存儲之後,而不是wsapi Feature商店 – spsteffl

2

所以康納回答我的問題的一半,但我得到的錯誤的原因是因爲我有一個renderereditor第三列,他們沒有很好地一起玩。爲了擺脫renderer,我修改了一些代碼,所以我現在只有編輯器,它可以正常工作。