1

以下は私のコードスニペットです: store-
>

   this.segmentsList = { segments: [] };
   this.segmentfields = [ {name: 'pvName', mapping : 'pvName'},         
                          {name: 'tierName', mapping : 'tierName'}] 
   this.segmentsStore = new Ext.data.JsonStore({
                         fields : this.segmentfields,
                         autoLoad: true,         
                         data   : this.segmentsList,            
                         root   : 'segments'         
                         });  

グリッド->

this.datatieringSelectModel = new Ext.selection.CheckboxModel({checkOnly:true});
      this.segmentsGrid = new Ext.grid.Panel({
         autoScroll : true
         ,id: 'segmentsGrid'
         ,store: this.segmentsStore
         ,height:200
         ,border: true
         ,columns: [           
              {header : 'TierName',  sortable: false, dataIndex: 'tierName'}
             ,{header : 'PV Name', sortable: false, dataIndex: 'pvName'}
         ]
         ,viewConfig: {forceFit: true}
         ,selModel:this.datatieringSelectModel
         ,selType:'checkboxmodel'         
         ,enableColumnHide : true
         ,stripeRows: true
      });
  this.datatieringSelectModel.on('select', this.checkboxSelectedHandler, this);

グリッドに次のデータを入力します。

{ "segments":  [{"tierName": "tire4","pvName": "d2"}
               ,{"tierName": "tire3","pvName": "d1"}]}

チェックボックスを選択すると、選択イベントが発生し、checkboxSelectedHandler メソッドが呼び出されます。

checkboxSelectedHandler: function(selectionModel, record, rowIndex ) {            
                 tierName = 'tier2';                     
                 record.set("tierName",tierName);
                 record.commit();                
   }

ここでは、tireName が正常に更新されますが、チェックボックスのチェック マークが消えます。デバッグ中に、目盛りが一度消えるのを観察しました record.set("tierName",tierName); 呼ばれます。対応するチェックボックスの選択に影響を与えずに tierName セルを更新する方法を提案してください。

4

0 に答える 0