PDA

View Full Version : problems with RowSelectionModel



marvinhorst
20 Feb 2007, 6:10 AM
SINGLE ROW

var tcs = grid.getSelectionModel().getSelected();
I get this error
this.selections.getAt is not a function

MULTI-ROW

var tcs = grid.getSelectionModel().getSelections();
doesn't produce any javascript errors, but the array it returns isn't an array of row id's.

Here is my grid setup code:

// preheats grid
var cm = new Ext.grid.ColumnModel([
{header: "ThermoCouple", dataIndex: 'tc', width: 89, sortable: true},
{header: "Target Time", dataIndex: 'time', width: 75, sortable: true}
]);
var record = Ext.data.Record.create([
{name: 'tc', mapping: 'tc'},
{name: 'time', mapping: 'time'},
]);
var reader = new Ext.data.JsonReader({
root: 'result',
id: 'tc',
}, record);
ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: 'preheat/tc'}),
reader: reader
});
ds.setDefaultSort('tc');
grid = new Ext.grid.Grid('preheats-grid', {
ds: ds,
cm: cm
});
grid.addListener('rowdblclick', viewGraph);
grid.render();

jack.slocum
20 Feb 2007, 7:01 AM
The 2nd is a "documentation hasn't been updated error". It actually returns an array of the full record objects.

getSelected should return 1 record object, but getAt should be itemAt.

I have fixed both these issues and will be deploying a new zip shortly.

aconran
20 Feb 2007, 1:14 PM
getSelected() returns a MixedCollection.

What is the index property in the MixedCollection?

tryanDLS
20 Feb 2007, 1:25 PM
Look at the source for MixedCollection - it's pretty completely documented. You can call item(key), itemAt(index), etc. There's quite a few ways of getting at the data.

aconran
20 Feb 2007, 1:34 PM
Tim -

here is my code:

var deleteRow = sm.getSelected();
deleteRow.each(function(key) {alert(key + ' : ' + deleteRow.get(key));});

I receive the error deleteRow.each is not a function. However if I use the line


deleteRow.get('title')

it pulls my data out fine...

Any help is appreciated

Aaron

tryanDLS
20 Feb 2007, 1:53 PM
I haven't done much with this yet, but looking at the code, getSelected returns a Record, not a MixedCollection. Get works b/c Record also has a get method. I would suggest stopping in debug after getSelected and looking at what that object actually is. Maybe it contains the data in a MixeCollection?? - try looking at the internal 'data' property.