I have not tested this locally but if you look at MusicData.js under testing for gridx, all of that data doesn't have id numeric "column" however the id column is later mixed in. See function getData, below I pasted the relevant lines I am pointing to. Also, for the store you can designate the idProperty, so if you didn't want to add "id" instead wanted to call it employeeNumber you could idProperty: 'employeeNumber' and use the same method below replacing 'id' with 'employeeNumber'. Also you structure/column structure doesn't need to have id added to it, you can leave it as:
var columns = [
{name: "AAA", field: "aaa", sortable: false},
{name: "BBB", field: "bbb"}
getData function from MusicData.js:
getData: function(size){
size = size === undefined ? 100 : size;
var data = {
identifier: 'id',
label: 'id',
items: []
};
for(var i = 0; i < size; ++i){
var item = items[i % items.length];
data.items.push(lang.mixin({
id: i,
order: i + 1,
Color: new Color([Math.sin(i) * 100, Math.cos(i) * 100, i * i]).toHex()
}, item));
}
return data;
}