2017-11-16 15 views
0

rownumberer를 사용하는 그리드가 있습니다. 그러나 마지막 행을 제외한 모든 행을 삭제하면 그 번호가 순서대로 나타나지 않습니다. 이미 grid.getView().refresh()을 사용했지만 문제가 해결되지 않았습니다. 행 삭제/추가 후 Rownumberer가 순서대로 나타나지 않습니다. ExtJS 4.1

var productHardwareGrid = Ext.create('Ext.grid.Panel', { 
    id: 'productHardwareGrid', 
    store: prodHardGridStore, 
    selModel: prodHardCheckBoxSelection, 
    frame: false, 
    loadMask: true, 
    stripeRows: true, 
    autoScroll: true, 
    preventRender: true,  
    tbar: [{ 
      xtype: 'button', 
      text: 'Add Product', 
      id: 'addProductHW', 
      iconCls: "icon-grid-add", 
      handler: function() { 
       prodWinAdd('productHardwareGrid', 'HW'); 
      } 
     }, 
      { 
       xtype: 'button', 
       text: 'Delete Product', 
       iconCls: "icon-grid-delete", 
       handler: function() { 
        prodDelete('HW'); 
        productHardwareGrid.getView().refresh(); 
       }, 
       id: 'prodHardDelBtn', 
       disabled: true 
      } 
     ], 
      columns: [ 
      { 
       xtype: 'rownumberer', 
       header: 'No', 
       defaults: { 
        align: 'center', 
        flex: 0, 
        width: 40, 
        sortable: false, 
        menuDisabled: true 
       } 
      }, 

답변

1

도와주세요 렌더러 하루 저장 다시 여기에있다.

var data = []; 

for(var i=0;i<10; i++) { 
    data.push({name: i, age: 1}); 
} 

Ext.application({ 
    name: 'Fiddle', 

    launch: function() { 

    var store = new Ext.data.Store({ 
     fields: ['name', 'age'], 
     data: data, 
     autoLoad: true, 
     pageSize: 10 
    }); 
    Ext.create('Ext.panel.Panel', { 
     renderTo: Ext.getBody(), 
     items: [{ 
      xtype: 'grid', 
      id: "grid1", 
      columns: [{ 
       xtype: 'rownumberer', 
       renderer: function (value, metaData, record, rowIdx, colIdx, store) { 
        var rowspan = this.rowspan; 
        if (rowspan) { 
         metaData.tdAttr = 'rowspan="' + rowspan + '"'; 
        } 
        metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special'; 
        return store.indexOf(record) + 1; 
       } 
      }, { 
       text: 'name', 
       dataIndex: 'name', 
       flex: 1 
      }, { 
       text: 'age', 
       dataIndex: 'age', 
       flex: 1 
      }], 
      store: store 
     }], 
     dockedItems: [{ 
      xtype: 'toolbar', 
      items: [{ 
       xtype: 'button', 
       text: 'Delete 1st', 
       handler: function() { 
        store.removeAt(0); 
        var grid = Ext.getCmp('grid1'); 
        grid.view.refresh(); 
       } 
      }] 
     }] 
    }); 
} 
}); 

바이올린 : https://fiddle.sencha.com/#view/editor&fiddle/29og