2014-06-06 3 views
0

행 확장기를 사용하여 격자를 만들려고 시도하는 중 이상한 동작이 발생했습니다.ExtJS RowExpander plugin 이상한 colspan

첫 번째 행의 확대보기 GET 3 (테이블의 열 수)의 열 병합의, 두 번째는 2의 열 병합을 얻고있는 다음 행이 왜 누군가가 설명해 주실 1.

의 열 병합을 얻을 그리고 확장 된 행의 내용을 모두 채우도록 지정하는 방법도 있습니다 (테이블의 열 수로 설정된 colspan).

JSFiddle :

JSFiddle working example

코드 :

Ext.onReady(function(){ 
var store = Ext.create('Ext.data.Store',{ 
    fields: ['id','name','ship'], 
    data: [{ 
     id: 1, 
     name: 'Kirk', 
     ship: 'Enterprise'   
    },{ 
     id: 2, 
     name: 'Picard', 
     ship: 'Enterprise' 
    },{ 
     id: 3, 
     name: 'Janeway', 
     ship: 'Voyager' 
    },{ 
     id: 4, 
     name: 'Khan', 
     ship: 'Reliant' 
    }] 
}); 

Ext.create('Ext.grid.Panel',{ 
    title: 'Test', 
    renderTo: Ext.getBody(), 
    store: store, 
    columns: [{ 
     text: 'ID', 
     dataIndex: 'id' 
    },{ 
     text: 'Name', 
     dataIndex: 'name' 
    },{ 
     text: 'Ship', 
     dataIndex: 'ship' 
    }], 
    plugins: [{ 
     ptype: 'rowexpander', 
     rowBodyTpl: [ 
      '<div class="row-details-panel" id="row-details-panel-{id}">{id} = {name}</div>' 
     ] 
    }], 
    listeners: { 
     afterrender: function (grid) { 
      // hide the first row generated by rowExander plugin 
      grid.getView().getHeaderAtIndex(0).hide(); 
     } 
    } 
}); 

});

답변

1

아마도 Ext 4.2.0 버전의 버그 일 가능성이 큽니다. Ext 4.2.1에 대해 https://fiddle.sencha.com에서 코드를 실행했으며 예상대로 작동합니다. 항상 colspan은 3입니다.

4.2.1로 업그레이드하면 큰 문제가 아닙니다.

+0

fiddle.sencha.com (4.2.1 classic)에서 위 코드를 실행 해 보았습니다 (onReady()가 제거되었습니다). 여기 모든 행은 일관되게 colspan 2가 아니라 colspan 3 (전체 테이블)이됩니다. 리스너 afterrender 메서드에서 행을 제거하지 않으면 모든 행이 colspan 3을 얻습니다 (그러나 추가 행은 테이블의 앞쪽에 나타납니다). 작동 시키려면 아무 것도 바꿨습니까? – klogd

+0

포스트는 그 바이올린 링크를 참조하십시오. – Saki

+0

https://fiddle.sencha.com/#fiddle/6g1 5에서 정상적으로 작동하지만 4.2.0 및 4.2.1 모두 다르게 작동합니다. – klogd