ExtJs의 동적 열 구현
3381 단어 ext
Ext.grid.DynamicGrid = Ext.extend(Ext.grid.GridPanel, {
initComponent: function() {
// store
var ds = new Ext.data.Store({
url: this.storeUrl,
reader: new Ext.data.JsonReader()
});
//
var config = {
viewConfig: {
forceFit: true
},
enableColLock: false,
loadMask: true,
border: true,
stripeRows: true,
ds: ds,
columns: []
};
// PagingToolbar store
this.bbar.bindStore(ds, true);
Ext.apply(this, config);
Ext.apply(this.initialConfig, config);
Ext.grid.DynamicGrid.superclass.initComponent.apply(this, arguments);
},
onRender: function(ct, position) {
this.colModel.defaultSortable = true;
Ext.grid.DynamicGrid.superclass.onRender.call(this, ct, position);
this.el.mask('Loading...');
this.store.on('load', function() {
if (typeof(this.store.reader.jsonData.columns) === 'object') {
var columns = [];
if (this.rowNumberer) {
columns.push(new Ext.grid.RowNumberer());
}
if (this.checkboxSelModel) {
columns.push(new Ext.grid.CheckboxSelectionModel());
}
Ext.each(this.store.reader.jsonData.columns,
function(column) {
columns.push(column);
}
);
this.getColumnModel().setConfig(columns);
}
this.el.unmask();
}, this);
this.store.load();
}
});
grid 만들기
var dynamicGrid = new Ext.grid.DynamicGrid({
title: ' ',
renderTo: 'dynamic-grid',
storeUrl: 'goods/dynamicGrid.do',
width : 600,
height: 200,
rowNumberer: true,
checkboxSelModel: true,
sm: new Ext.grid.CheckboxSelectionModel(),
bbar : new Ext.PagingToolbar({
pageSize : 5,
displayInfo : true,
displayMsg : ' {0} {1} , {2} ',
emptyMsg : " ",
beforePageText : " ",
afterPageText : ' {0} '
})
});
반환된 데이터 형식
{
'metaData': {
'totalProperty': 'total',
'root': 'records',
'id': 'id',
'fields': [
{'name': 'id', 'type': 'int'},
{'name': 'name', 'type': 'string'}
]
},
'success': true,
'total': 50,
'records': [
{'id': '1', 'name': 'AAA'},
{'id': '2', 'name': 'BBB'}
],
'columns': [
{'header': '#', 'dataIndex': 'id'},
{'header': 'User', 'dataIndex': 'name'}
]
}
글은 http://erhanabay.com/2009/01/29/dynamic-grid-panel-for-ext-js/로 옮겨져 페이지 나누기 방식을 추가했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ExtJS 3.2 학습 노트(3) 사용자 정의 이벤트Extjs에서 모든 상속은 Ext.util에서 합니다.Observable 클래스의 컨트롤은 이벤트를 지원할 수 있습니다. 클래스에 대해 이벤트를 사용자 정의하려면 다음 절차를 따르십시오. 1, 먼저 클래스를 정의합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.