<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Dojo TreeGrid &amp;amp;amp;amp; Find Task example in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/329#M21</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've built upon the Find Task example given in the ArcGIS API for JavaScript:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples/find_map.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples/find_map.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where not only does the Find Task return Values in a map service but also made it possible to click through examples that will return that geometry's values map extent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the Find Task returns polygons from the map service that have the same Value, e.g. one road with 5 polygons will return 5 values, when I'm only interested in that one road.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For aesthetic reasons, I want it to return a collapsed tree where its children are all the results and the root is &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;one&lt;/SPAN&gt;&lt;SPAN&gt; result returned from the Find Task.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is where dojo's TreeGrid comes in.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've looked at the syntax and structure of the dojo TreeGrid, and I'm at a loss how to plug in the Find Task into returning results in a TreeGrid.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW, the code snippet that I've written that returns the map extent is built upon this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt;&lt;SPAN&gt; the 4th (0-index) value is&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataForGrid.push([result.layerName, result.foundFieldName, result.value, result.geometry, &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;result.feature.geometry.getExtent()&lt;/SPAN&gt;&lt;SPAN&gt;]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp; dojo.connect(grid, 'onRowClick', function(evt) {
&amp;nbsp; 
&amp;nbsp; var kannar_xmin = new Array();
&amp;nbsp; var kannar_ymin = new Array();
&amp;nbsp; var kannar_xmax = new Array();
&amp;nbsp; var kannar_ymax = new Array();
&amp;nbsp; var extt;
&amp;nbsp; 
&amp;nbsp; if (grid.selection) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get all selected items from the Grid:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var items = grid.selection.getSelected();
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (items.length) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Iterate through the list of selected items.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The current item is available in the variable
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // "selectedItem" within the following function:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.forEach(items, function(selectedItem) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (selectedItem !== null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt = grid.store.getValues(selectedItem, "4")[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // use the initial selected extent 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmin = [grid.store.getValues(selectedItem, "4")[0].xmin];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymin = [grid.store.getValues(selectedItem, "4")[0].ymin];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmax = [grid.store.getValues(selectedItem, "4")[0].xmax];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymax = [grid.store.getValues(selectedItem, "4")[0].ymax];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end if

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //examine for lowest and highest extent within 10km
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k=0; k&amp;lt;grid._by_idx.length; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( grid.store.getValues(selectedItem, "2")[0] === grid._by_idx&lt;K&gt;.item[2][0]) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].xmin - grid._by_idx&lt;K&gt;.item[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].ymin - grid._by_idx&lt;K&gt;.item[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].xmax - grid._by_idx&lt;K&gt;.item[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].ymax - grid._by_idx&lt;K&gt;.item[4][0].ymax))) )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i=0; i&amp;lt;(grid._by_idx.length); i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].xmin - grid._by_idx&lt;I&gt;.item[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].ymin - grid._by_idx&lt;I&gt;.item[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].xmax - grid._by_idx&lt;I&gt;.item[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].ymax - grid._by_idx&lt;I&gt;.item[4][0].ymax))) ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //build temporary 'kannar_' array for checking lowest and highest value out from the IF conditions
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmin.push(grid._by_idx&lt;K&gt;.item[4][0].xmin);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymin.push(grid._by_idx&lt;K&gt;.item[4][0].ymin);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmax.push(grid._by_idx&lt;K&gt;.item[4][0].xmax);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymax.push(grid._by_idx&lt;K&gt;.item[4][0].ymax);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine xmin
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.xmin = kannar_xmin.min();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine ymin
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.ymin = kannar_ymin.min();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine xmax
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.xmax = kannar_xmax.max();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine ymax
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.ymax = kannar_ymax.max();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if extt is not defined, then use the selected value as extent
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (extt.xmin === undefined)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt = grid.store.getValues(selectedItem, "4")[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert("xmin:&amp;nbsp; " + extt.xmin + " , _partwise:&amp;nbsp; " + extt._partwise);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }); // end forEach
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end if
&amp;nbsp; } //end if onClick
&amp;nbsp; 
&amp;nbsp; map.setExtent(extt.expand(2));
&amp;nbsp; });
&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the min and max function calls are:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

 // function for finding highest value of an array with a for loop&amp;nbsp; 
 Array.prototype.max = function() {
&amp;nbsp; var max = this[0];
&amp;nbsp; var len = this.length;
&amp;nbsp; for (var j = 1; j &amp;lt; len; j++) if (this&lt;J&gt; &amp;gt; max) max = this&lt;J&gt;;
&amp;nbsp; return max;
 }
 
 
 // function for finding lowest value of an array with a for loop
 Array.prototype.min = function() {
&amp;nbsp; var min = this[0];
&amp;nbsp; var len = this.length;
&amp;nbsp; for (var j = 1; j &amp;lt; len; j++) if (this&lt;J&gt; &amp;lt; min) min = this&lt;J&gt;;
&amp;nbsp; return min;
 }
&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I have to submit further explanation on my issue, please let me know.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Dec 2021 20:02:02 GMT</pubDate>
    <dc:creator>Salomon_VágadalJoensen</dc:creator>
    <dc:date>2021-12-10T20:02:02Z</dc:date>
    <item>
      <title>Dojo TreeGrid &amp;amp;amp; Find Task example</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/329#M21</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've built upon the Find Task example given in the ArcGIS API for JavaScript:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples/find_map.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples/find_map.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where not only does the Find Task return Values in a map service but also made it possible to click through examples that will return that geometry's values map extent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the Find Task returns polygons from the map service that have the same Value, e.g. one road with 5 polygons will return 5 values, when I'm only interested in that one road.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For aesthetic reasons, I want it to return a collapsed tree where its children are all the results and the root is &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;one&lt;/SPAN&gt;&lt;SPAN&gt; result returned from the Find Task.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is where dojo's TreeGrid comes in.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've looked at the syntax and structure of the dojo TreeGrid, and I'm at a loss how to plug in the Find Task into returning results in a TreeGrid.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BTW, the code snippet that I've written that returns the map extent is built upon this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt;&lt;SPAN&gt; the 4th (0-index) value is&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataForGrid.push([result.layerName, result.foundFieldName, result.value, result.geometry, &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;result.feature.geometry.getExtent()&lt;/SPAN&gt;&lt;SPAN&gt;]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp; dojo.connect(grid, 'onRowClick', function(evt) {
&amp;nbsp; 
&amp;nbsp; var kannar_xmin = new Array();
&amp;nbsp; var kannar_ymin = new Array();
&amp;nbsp; var kannar_xmax = new Array();
&amp;nbsp; var kannar_ymax = new Array();
&amp;nbsp; var extt;
&amp;nbsp; 
&amp;nbsp; if (grid.selection) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get all selected items from the Grid:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var items = grid.selection.getSelected();
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (items.length) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Iterate through the list of selected items.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The current item is available in the variable
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // "selectedItem" within the following function:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.forEach(items, function(selectedItem) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (selectedItem !== null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt = grid.store.getValues(selectedItem, "4")[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // use the initial selected extent 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmin = [grid.store.getValues(selectedItem, "4")[0].xmin];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymin = [grid.store.getValues(selectedItem, "4")[0].ymin];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmax = [grid.store.getValues(selectedItem, "4")[0].xmax];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymax = [grid.store.getValues(selectedItem, "4")[0].ymax];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end if

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //examine for lowest and highest extent within 10km
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k=0; k&amp;lt;grid._by_idx.length; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( grid.store.getValues(selectedItem, "2")[0] === grid._by_idx&lt;K&gt;.item[2][0]) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].xmin - grid._by_idx&lt;K&gt;.item[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].ymin - grid._by_idx&lt;K&gt;.item[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].xmax - grid._by_idx&lt;K&gt;.item[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store.getValues(selectedItem, "4")[0].ymax - grid._by_idx&lt;K&gt;.item[4][0].ymax))) )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i=0; i&amp;lt;(grid._by_idx.length); i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].xmin - grid._by_idx&lt;I&gt;.item[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].ymin - grid._by_idx&lt;I&gt;.item[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].xmax - grid._by_idx&lt;I&gt;.item[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;K&gt;.item[4][0].ymax - grid._by_idx&lt;I&gt;.item[4][0].ymax))) ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //build temporary 'kannar_' array for checking lowest and highest value out from the IF conditions
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmin.push(grid._by_idx&lt;K&gt;.item[4][0].xmin);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymin.push(grid._by_idx&lt;K&gt;.item[4][0].ymin);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_xmax.push(grid._by_idx&lt;K&gt;.item[4][0].xmax);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kannar_ymax.push(grid._by_idx&lt;K&gt;.item[4][0].ymax);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine xmin
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.xmin = kannar_xmin.min();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine ymin
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.ymin = kannar_ymin.min();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine xmax
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.xmax = kannar_xmax.max();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // examine ymax
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt.ymax = kannar_ymax.max();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if extt is not defined, then use the selected value as extent
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (extt.xmin === undefined)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extt = grid.store.getValues(selectedItem, "4")[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert("xmin:&amp;nbsp; " + extt.xmin + " , _partwise:&amp;nbsp; " + extt._partwise);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }); // end forEach
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end if
&amp;nbsp; } //end if onClick
&amp;nbsp; 
&amp;nbsp; map.setExtent(extt.expand(2));
&amp;nbsp; });
&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/K&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the min and max function calls are:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

 // function for finding highest value of an array with a for loop&amp;nbsp; 
 Array.prototype.max = function() {
&amp;nbsp; var max = this[0];
&amp;nbsp; var len = this.length;
&amp;nbsp; for (var j = 1; j &amp;lt; len; j++) if (this&lt;J&gt; &amp;gt; max) max = this&lt;J&gt;;
&amp;nbsp; return max;
 }
 
 
 // function for finding lowest value of an array with a for loop
 Array.prototype.min = function() {
&amp;nbsp; var min = this[0];
&amp;nbsp; var len = this.length;
&amp;nbsp; for (var j = 1; j &amp;lt; len; j++) if (this&lt;J&gt; &amp;lt; min) min = this&lt;J&gt;;
&amp;nbsp; return min;
 }
&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I have to submit further explanation on my issue, please let me know.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:02:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/329#M21</guid>
      <dc:creator>Salomon_VágadalJoensen</dc:creator>
      <dc:date>2021-12-10T20:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: Dojo TreeGrid &amp; Find Task example</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/330#M22</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well, I've made 'some' progress, where I've figured out how to make a new grid with the TreeGrid structure. However, I run into a TypeError that confuses me and I am unable to find where the faults lies.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp; grid1 = new dojo.data.ItemFileWriteStore({ data: data });
&amp;nbsp; console.log(grid1);
&amp;nbsp; 
&amp;nbsp; function ValueTotal(value, rowIdx){
&amp;nbsp;&amp;nbsp; return summaryFormatter(value, rowIdx, this, "Value", "Values");
&amp;nbsp; }
&amp;nbsp; 
&amp;nbsp; dojo.addOnLoad(function(){
&amp;nbsp;&amp;nbsp; g = new dojox.grid.TreeGrid({
&amp;nbsp;&amp;nbsp;&amp;nbsp; structure: [ 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { cells: [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { field: "0", name: "Layer Name", 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; children: [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { field: "1", name: "Field Name" }, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { field: "2", name: "Value", formatter: ValueTotal}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ], 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemAggregates: [ "totValue" ], 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aggregate: "cnt"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]] 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ],
&amp;nbsp;&amp;nbsp;&amp;nbsp; store: grid1,
&amp;nbsp;&amp;nbsp;&amp;nbsp; query: {id: "*"},
&amp;nbsp;&amp;nbsp;&amp;nbsp; queryOptions: {deep: true},
&amp;nbsp;&amp;nbsp;&amp;nbsp; rowSelector: true,
&amp;nbsp;&amp;nbsp; }, dojo.byId("progGrid"));
&amp;nbsp;&amp;nbsp; dojo.addClass(g.domNode, "grid");
&amp;nbsp;&amp;nbsp; g.startup();
&amp;nbsp;&amp;nbsp; dojo.connect(window, "onresize", grid, "resize");
&amp;nbsp; });
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;The error displayed in Chrome says that it is of a 'type: "non_object_property_store"' and the argument is "isCollapsable" is undefined. Where or how do I define isCollapsable?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT: I find the comparable code from: &lt;/SPAN&gt;&lt;A href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_treegrid.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_treegrid.html&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:02:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/330#M22</guid>
      <dc:creator>Salomon_VágadalJoensen</dc:creator>
      <dc:date>2021-12-10T20:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: Dojo TreeGrid &amp; Find Task example</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/331#M23</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well, I've yet to get TreeGrid to work, so instead I've utilized some 'dirty' code to hide duplicate&amp;nbsp; values&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp; for (var i = 0; grid._by_idx.length &amp;gt; i; i++) {
&amp;nbsp;&amp;nbsp; for (var k = i + 1; grid._by_idx.length &amp;gt; k;k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (( (grid._by_idx&lt;I&gt;.item[2][0] === grid._by_idx&lt;K&gt;.item[2][0]) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (grid._by_idx&lt;I&gt;.item[1][0] === grid._by_idx&lt;K&gt;.item[1][0]) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;amp;&amp;amp; (
&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;I&gt;.item[4][0].xmin - grid._by_idx&lt;K&gt;.item[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;I&gt;.item[4][0].ymin - grid._by_idx&lt;K&gt;.item[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;I&gt;.item[4][0].xmax - grid._by_idx&lt;K&gt;.item[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid._by_idx&lt;I&gt;.item[4][0].ymax - grid._by_idx&lt;K&gt;.item[4][0].ymax))) ))
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hiddenRows.push(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The hiddenRows function:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp; var g2 = dijit.byId('grid'); 
&amp;nbsp; 
&amp;nbsp; var _hideRow = function(index){ 
&amp;nbsp;&amp;nbsp; dojo.forEach(g2.views.views, function(v){ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.style(v.rowNodes[index], {'display':"none"}); 
&amp;nbsp;&amp;nbsp; }); 
&amp;nbsp; } &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp; //hide rows 
&amp;nbsp; dojo.forEach(hiddenRows, _hideRow); 

&amp;nbsp; 
&amp;nbsp; //make sure they are also hidden when rendered later 
&amp;nbsp; dojo.connect(g2.views, 'renderRow', function(index){ 
&amp;nbsp;&amp;nbsp; if(dojo.indexOf(hiddenRows, index) &amp;gt;= 0){ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; _hideRow(index);
&amp;nbsp;&amp;nbsp; } 
&amp;nbsp; });&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:02:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/331#M23</guid>
      <dc:creator>Salomon_VágadalJoensen</dc:creator>
      <dc:date>2021-12-10T20:02:08Z</dc:date>
    </item>
    <item>
      <title>Re: Dojo TreeGrid &amp; Find Task example</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/332#M24</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Because grid._by_idx only saves for what is defined by the RowsPerPage rendered, I used grid.store._arrayOfAllItems , that way the for loop goes through all of the store instead of just the rendered items. There are a few bugs for large results, but otherwise it works. Otherwise I still use the hiddenRows function to hide duplicate values.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp; // um meira enn eitt úrslit so goym dubbult-úrslit.
&amp;nbsp; if (grid.store._arrayOfAllItems.length &amp;gt; 1) {
&amp;nbsp; 
&amp;nbsp;&amp;nbsp; for (var i=0; grid.store._arrayOfAllItems.length &amp;gt; i; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k=0; grid.store._arrayOfAllItems.length&amp;gt; k; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( (grid&lt;K&gt; == false) &amp;amp;&amp;amp; (i != k) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (grid.store._arrayOfAllItems&lt;I&gt;[2][0] === grid.store._arrayOfAllItems&lt;K&gt;[2][0]) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (grid.store._arrayOfAllItems&lt;I&gt;[1][0] === grid.store._arrayOfAllItems&lt;K&gt;[1][0]) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store._arrayOfAllItems&lt;I&gt;[4][0].xmin - grid.store._arrayOfAllItems&lt;K&gt;[4][0].xmin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store._arrayOfAllItems&lt;I&gt;[4][0].ymin - grid.store._arrayOfAllItems&lt;K&gt;[4][0].ymin))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store._arrayOfAllItems&lt;I&gt;[4][0].xmax - grid.store._arrayOfAllItems&lt;K&gt;[4][0].xmax))) &amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10000 &amp;gt; (Math.abs(grid.store._arrayOfAllItems&lt;I&gt;[4][0].ymax - grid.store._arrayOfAllItems&lt;K&gt;[4][0].ymax))) )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid&lt;K&gt; = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hiddenRows.push(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; console.log(superl);
&amp;nbsp;&amp;nbsp; console.log(grid);
&amp;nbsp; }&lt;/K&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/I&gt;&lt;/K&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:02:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/dojo-treegrid-amp-amp-amp-find-task-example/m-p/332#M24</guid>
      <dc:creator>Salomon_VágadalJoensen</dc:creator>
      <dc:date>2021-12-10T20:02:10Z</dc:date>
    </item>
  </channel>
</rss>

