require([ "dojo/ready", "dgrid/OnDemandGrid", "dgrid/Selection", "dojo/store/Memory", "dojo/_base/array", "dojo/dom-style", "dijit/registry", "esri/map", "esri/layers/FeatureLayer", "esri/symbols/SimpleMarkerSymbol", "esri/tasks/QueryTask", "esri/tasks/query", "dojo/_base/declare", "dojo/number", "dojo/date/locale", "dojo/on", "dojo/parser", "esri/dijit/HomeButton", "esri/dijit/BasemapToggle", "esri/InfoTemplate", "esri/layers/ArcGISDynamicMapServiceLayer", "dijit/layout/BorderContainer", "dijit/layout/ContentPane" ], function( ready, Grid, Selection, Memory, array, domStyle, registry, Map, FeatureLayer, SimpleMarkerSymbol, QueryTask, Query, declare, dojoNum, locale, on, parser, HomeButton, BasemapToggle, InfoTemplate, ArcGISDynamicMapServiceLayer )
This may not be the cause of your issue, but your aliases do not match the modules in the require statement.require([ "dojo/ready", "dgrid/OnDemandGrid", "dgrid/Selection", "dojo/store/Memory", "dojo/_base/array", "dojo/dom-style", "dijit/registry", "esri/map", "esri/layers/FeatureLayer", "esri/symbols/SimpleMarkerSymbol", "esri/tasks/QueryTask", "esri/tasks/query", "dojo/_base/declare", "dojo/number", "dojo/date/locale", "dojo/on", "dojo/parser", "esri/dijit/HomeButton", "esri/dijit/BasemapToggle", "esri/InfoTemplate", "esri/layers/ArcGISDynamicMapServiceLayer", "dijit/layout/BorderContainer", "dijit/layout/ContentPane" ], function( ready, Grid, Selection, Memory, array, domStyle, registry, Map, FeatureLayer, SimpleMarkerSymbol, QueryTask, Query, declare, dojoNum, locale, on, parser, HomeButton, BasemapToggle, InfoTemplate, ArcGISDynamicMapServiceLayer )
What this means is the arguments in the "function" part must be in the same order as the modules are listed in the require part. Take a look at the order in my post versus what's in your Fiddle. You don't necessarily need an argument for each module, but the modules the don't have an argument ("dijit/layout/BorderContainer", "dijit/layout/ContentPane") must be listed after the modules that have an argument.