Example Code is Here, grid created dynamically
Creating elements for grid.
Code:
/* array data */
var k = 0;
var splitArr = new Array();
var gridElements = new Array();
var showElements = new Array();
for(var i=0; i<records.length; i++)
{
splitArr[i] = records[i].split(";");
/* Create Grid Fields */
var grEl = new Object();
if(splitArr[i][0]){
grEl.name = clsString(splitArr[i][0]);
if(splitArr[i][2]){
grEl.type = clsString(splitArr[i][2]);
}
gridElements[i] = grEl;
/* Create Fields Display */
if(splitArr[i][1]){
var shEl = new Object();
shEl.dataIndex = clsString(splitArr[i][0]);
shEl.header = splitArr[i][1];
if(splitArr[i][3]){
var filType = clsString(splitArr[i][3]);
var filName = clsString(splitArr[i][4]);
shEl.filter = {xtype: filType, filterName: filName};
}
showElements[k++]=shEl;
}
}
}
Code:
gridUi= Ext.extend(Ext.grid.GridPanel, {
title : gridTitle,
// bodyStyle : "height: 100%",
height : gridHeight,
frame : true,
iconCls: iconClsData,
loadMask : {
msg : language.UY011
},
viewConfig : {
forceFit : false
},
stripeRows : false,
plugins: [new Ext.ux.grid.GridHeaderFilters()],
initComponent : function() {
/* Load Grid Elements */
var recgridName = new Ext.data.Record.create(gridElements);
var storegridName = new Ext.data.JsonStore({
autoDestroy : true,
url : ajaxRequest,
root : 'data',
totalProperty: 'totalCount',
fields : recgridName,
pruneModifiedRecords : true,
autoLoad : false
});
this.store = storegridName;
// var filterRow = new Ext.ux.grid.FilterRow();
// this.plugins = [filterRow];
this.bbar = loadPaging(storegridName, 20);
if(tbarRightElements && !tbarLeftElements){
this.tbar = ['','->',tbarRightElements];
}
if(!tbarRightElements && tbarLeftElements){
this.tbar = [tbarLeftElements,'->',''];
}
if(tbarRightElements && tbarLeftElements){
this.tbar = [tbarLeftElements,'->',tbarRightElements];
}
this.cm = new Ext.grid.ColumnModel({
defaults : {
sortable : true
},
/* Load Showed Elements */
columns : showElements
});
this.selModel = new Ext.grid.RowSelectionModel({
singleSelect : true
});
this.view = new Ext.grid.GridView({
forceFit : true
});
gridUi.superclass.initComponent.call(this);
},
getSelected : function() {
return this.selModel.getSelected();
},
getSelectedData : function() {
return this.getSelected().data;
},
removeRecord : function(rec) {
this.store.remove(rec);
},
loadStore : function() {
this.store.load.defer(500, this.store);
},
insertNewRecord : function() {
this.store.insert(0, new this.store.recordType());
},
stopEditing: function () {
if(this.editor){this.editor.stopEditing();}
},
startEditing: function (index) {
if(this.editor){this.editor.startEditing(index);}
},
hasSelected : function() {
if (this.selModel.getSelected() == null) {
return false;
} else {
return true;
}
}
});
gr = Ext.extend(gridUi, {
initComponent : function() {
gr.superclass.initComponent.call(this);
}
});
Ext.reg("'"+gridName+"'", gr);