PDA

View Full Version : Gridpanel empty after reconfigure



Mooi
4 Oct 2012, 10:03 PM
I like to create a site with some Gridpanels wit some dummy stores.
At runtime the Gridpanel and Stores have to be filled with real data.

The code below works, except that after the 'reconfigure()' my grid is empy, however the headers are filled ok.
The store is filled correctly also.
What is wrong in my code?

I am using a test Complete Sencha from a few weeks ago.




initStores: function() {
MyApp.uid = 'jan';
MyApp.pwd = '123';
MyApp.domain = 'tspalm:8082' ;
var storeId = 'PARTIJ_DETAIL';

var sqlCommandId = 'PARTIJ';
var sqlView = 'DETAIL';
var store = Ext.getStore('Headers');
store.getProxy().url = 'http://www.wmysite.com/callback.php?loginUsername=' + MyApp.uid + '&loginPassword=' + MyApp.pwd + '&loginIp=' + MyApp.domain + '&level=8&commandid=' + sqlCommandId + '&viewid=' + sqlView + '&params=';
store.remove(store.getRange());
store.load({
scope : this,
callback: function(records, operation, success) {
if (success) {

console.log('Headers gelezen');
console.log(records);
// initiate arrays
var fieldNames = [];
var modelFields = [];
var columnNames = [];


Ext.Array.each(records, function(prop) {
fieldNames.push(prop.data.cname);
});


Ext.Array.each(fieldNames, function(fldname){
modelFields.push({name: fldname, type: 'string'});
});


Ext.Array.each(fieldNames, function(fldname){
columnNames.push({dataindex: fldname,
text: fldname,
flex: 1,
xtype: 'gridcolumn'});
});

var storeResults = new Ext.data.Store({
storeId: 'MyStore1',
id: storeId ,
proxy: {
type: 'jsonp',
url : 'http://www.myweb.com/callback.php?loginUsername=' + MyApp.uid + '&loginPassword=' + MyApp.pwd + '&loginIp=' + MyApp.domain + '&level=9&commandid=' + sqlCommandId + '&viewid=' + sqlView + '&params=',
reader: {
type: 'json',
root: 'row'
}
},
fields: modelFields
});


storeResults.load({
scop: this,
callback: function(records, operation, success) {
if (success) {
}
console.log(storeResults);
//in the Console If ound that the Store is correctly filled
var mygrid = Ext.getCmp('upperdw');
console.log(columnNames);
mygrid.reconfigure(storeResults, columnNames);
//Here my grid is empty, correct headers without data
}});


}
}
});

},

vietits
4 Oct 2012, 11:41 PM
You should use dataIndex instead of dataindex.


Ext.Array.each(fieldNames, function(fldname){
columnNames.push({
// dataindex: fldname,
dataIndex: fldname,
text: fldname,

flex: 1,
xtype: 'gridcolumn'});
});

There is an alternative solution for dynamic grids that you should look at is that using metaData. See more information about metaData at Ext.data.reader.Json (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.reader.Json), in "Response MetaData" section.

Mooi
5 Oct 2012, 1:57 AM
Thanks a lot !!
It works.