I've looked at all of the examples and I've tried two different ways to zoom to a record in a data grid but I am failing.
*Choice one is to do it as a zoom button in the table but I can not seem to get find the row index! See bolded lines below. .
<table data-dojo-type="dojox.grid.EnhancedGrid" style="height:50px;" jsid="gridStores" id="gridStores" selectionMode="single" data-dojo-props="plugins:{exporter:true, printer:true}">
<thead><tr>
<th field="FID" formatter="makeZoomButton" width="30px">
<img alt="+" src="assets/images/GenericSearch32.png" height="20" width="20"/>
</th>
<th field="WebLon_X" width="100px">WebLon_X</th>
<th field="WebLat_Y" width="150px">WebLat_Y</th>
</tr></thead>
</table>
function makeZoomButton(id){
var zBtn = "<div data-dojo-type='dijit.form.Button'><img src='assets/images/GenericSearch32.png'";
zBtn = zBtn + " width='18' height='18'";
zBtn = zBtn + " onClick=\"zoomRow('"+id+"')\"></div>";
return zBtn;
}
function zoomRow(evt){
// var lon= gridStores.getItem(evt.rowIndex).WebLon_X;
// var lat= gridStores.getItem(evt.rowIndex).WebLat_Y;
var lon = gridStores.store.getValue(gridStores.getItem(evt.rowIndex), "WebLon_X");
var lat= gridStores.store.getValue(gridStores.getItem(evt.rowIndex), "WebLat_Y");
//--This works if I know row number/index !!!!!
//var lon = gridStores.store.getValue(gridStores.getItem(3), "WebLon_X");
//var lat= gridStores.store.getValue(gridStores.getItem(3), "WebLat_Y");
alert("Current Row Index = " + currentRowIndex);
var lon = gridStores.store.getValue(gridStores.getItem(currentRowIndex), "WebLon_X");
map.centerAndZoom(new esri.geometry.Point( lon, lat, map.spatialReference),12);
}
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
*Choice two was to try and to this on a double click but not sure how well that will work with tablet devices. I can get cell value but when I use it my zoom does not work ;-( I am guess formatting because if I hard code it everything seems to work fine.
function onRowDblClickHandler(evt){
if (confirm('Do you wish to zoom to this record?')) {
var items = gridStores.selection.getSelected();
if (items.length) {
dojo.forEach(items, function(selectedItem) {
lon = gridStores.store.getValues(selectedItem, "WebLon_X");
lat = gridStores.store.getValues(selectedItem, "WebLat_Y");
//var lon = -12838746.49378;
//var lat = 4321278.26719;
alert("lon = " + lon + " lat = " + lat);
map.centerAndZoom(new esri.geometry.Point("" +lon+ "", "" + lat + "", map.spatialReference),12);
}
// --- end
}
}