I'm using a Dojo Grid to display the features selected on a map. I wonder if it's possible to have more than one field as idProperty. The reason I need this is because I need to use one of the IDs to select the feature on the map when the row is clicked on the grid. And I need to other key value to pass it to a web service once the user selects multiple records from the grid.
If having multiple IdProperty fields is not possible, then I need to know if I can get all the columns from a selected row.
Thanks in advance for your help.
Solved! Go to Solution.
Mario,
So you just get the selected row ids from the grid and use the row data method I have in my code to get the drawing id for each of the selected rows.
Mario,
Assigning multiple IdProperty fields is not the proper solution if it even is possible. You just use your click event :
grid.on(".field-id:click", someFunction);
// fires when a row in the dgrid is clicked
function someFunction(e) {
var row = grid.row(e);
console.info(row.data); // This has all the row data
Robert,
Thanks so much for your prompt response. Perhaps I need to provide a bit more information about my problem. I have an attribute called Drawing # in my layers, which was supposed to be unique, but it turns out is not. For example, more than one line might have the same Drawing #. If I use ObjectID as IdProperty for the dgrid, I have no problem zooming in to a feature when that feature is clicked on the grid.
Now my application allows users to select multiple records from the grid. When that happens I need to pass all the Drawing #s selected by the user to a web service. My problem is that the grid.selection returns the IdProperty values of the selected rows. I can't seem to find a way to extract the Drawing #s from the selection unless the Drawing # is set as IdProperty. That's why I was thinking that if it was possible to have multiple IdProperty values, I could set the Drawing # to be one of those values.
Thanks!
Mario,
So you just get the selected row ids from the grid and use the row data method I have in my code to get the drawing id for each of the selected rows.
Robert,
So, I went with something like this:
selection = [];
var selected = grid.selection;
for (selRow in selected) {
var gridRow = grid.row(selRow);
selection.push(gridRow.data.CONSTRUCTION_DRAWING);
}
Thanks so much for your help.