AnsweredAssumed Answered

QueryTask and DataGrid problem

Question asked by abel.ludba on Mar 29, 2015
Latest reply on Apr 1, 2015 by abel.ludba

Hello

I am new to ArcGIS JavaScript.

I'm using ArcGIS 10 and would like to publish results of a simple Query in a table.

This is my Code:

<!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">     <title>Test QueryTask with Table</title>       <link rel="stylesheet" href="http://js.arcgis.com/3.13/dijit/themes/tundra/tundra.css">     <link rel="stylesheet" href="http://js.arcgis.com/3.13/esri/css/esri.css">     <style>       html, body { height: 100%; width: 100%; margin: 0; padding: 0; }     </style>       <script src="http://js.arcgis.com/3.13/"></script>     <script>     var queryTaskTwo, queryTWO;         var grid, store;                require([           "dojo/parser",           "esri/tasks/query",    "esri/tasks/QueryTask",    "dijit/registry",         "dojo/_base/array",         "dojo/dom",          "dojo/on",           "dojo/_base/connect",         "dojox/grid/DataGrid",         "dojo/data/ItemFileReadStore",         "dijit/form/Button",                 "dijit/layout/BorderContainer",         "dijit/layout/ContentPane",         "dojo/domReady!"       ],     function (parser, Query, QueryTask, registry, arrayUtils, dom, on, DataGrid, ItemFileReadStore) {       parser.parse();             queryTaskTwo=new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5")    queryTWO=new Query();    queryTWO.returnGeometry=false;    queryTWO.outFields=["STATE_NAME","POP00_SQMI","HOUSEHOLDS","BLACK","MALES"];                  on(dom.byId("execute"), "click", execute);           function execute ()    {         queryTWO.text = dom.byId("stateName").value;           queryTaskTwo.execute(queryTWO,showResultsTwo );    //         }    function showResultsTwo(resultsTwo) {            //create array of attributes           var items = arrayUtils.map(resultsTwo, function (result)     {                  return result.feature.attributes;           });             //Create data object to be used in store           var data = {             identifier : "SQMI", //This field needs to have unique values             label : "SQMI", //Name field for display. Not pertinent to a grid but may be used elsewhere.             items : items           };             //Create data store and bind to grid.           store = new ItemFileReadStore({             data : data           });                var grid = dom.byId("grid");            grid.setStore(store);      grid.setQuery({ SQMI: "*" });         // .................................................             }       //       });     </script>   </head>     <body class="tundra">     US state name :     <input type="text" id="stateName" value="California">     <input id="execute" type="button" value="Get Details">     <br />     <br />      <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'" style="height:150px;">      <table data-dojo-type="dojox/grid/DataGrid" data-dojo-id="grid"  id="grid" data-dojo-props="rowsPerPage:'5', rowSelector:'20px'">       <thead>         <tr>           <th field="SQMI"  width="10%">SQMI</th>           <th field="STATE_NAME" width="10%" >STATE_NAME1</th>           <th field="POP00_SQMI" width="30%" >SUB_REGION2</th>           <th field="HOUSEHOLDS" width="20%">AVG_SIZE97</th>           <th field="BLACK" width="10%">BLACK </th>           <th field="MALES" width="20%">OWNER_OCC</th>         </tr>       </thead>     </table>   </div>  </html> 

 

when I run this code, I get this error:

TypeError: undefined is not a function {stack: (...), message: "undefined is not a function"} "TypeError: undefined is not a function     at showResultsTwo (http://localhost/Dgrid/queryMultipleTest2.html:74:16)

I could not find what am I doing wrong?

Would it be possible to help?

Thanks

Abel

Outcomes