Javascript 按ID获取声明性dojo datagrid
我无法通过ID访问声明式创建的datagrid,以便设置其数据存储 这是我的代码,但树返回为未定义 提前感谢您的帮助Javascript 按ID获取声明性dojo datagrid,javascript,dojo,Javascript,Dojo,我无法通过ID访问声明式创建的datagrid,以便设置其数据存储 这是我的代码,但树返回为未定义 提前感谢您的帮助 <!DOCTYPE html> <html lang="en"> <head> <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js" data-dojo-config="async: true"></scr
<!DOCTYPE html>
<html lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js" data-dojo-config="async: true"></script>
</head>
<body>
<table data-dojo-id="myTree" dataType="dojox.grid.TreeGrid" summary="This is a test">
<thead>
<tr>
<th field="a" width="200px">A</th>
<th field="items" aggregate="sum" itemAggregates="count">
<table>
<thead>
<tr>
<th field="name" width="200px">Name</th>
<th field="count" width="200px">Count</th>
</tr>
</thead>
</table>
</th>
</tr>
</thead>
</table>
</body>
<script>
require(["dijit/registry", "dojo/data/ItemFileReadStore"], function( Registry, ReadStore ) {
var store = new ReadStore();
var tree = Registry.byId("myTree");
console.log(tree);
// tree.setStore( store );
});
</script>
</html>
A.
名称
计数
require([“dijit/registry”,“dojo/data/ItemFileReadStore”],函数(registry,ReadStore){
var store=new ReadStore();
var-tree=Registry.byId(“myTree”);
控制台日志(树);
//树。设置存储(存储);
});
您的代码有几个问题导致您的问题
不是一件事;您需要数据类型
(您可能会将其与不推荐的数据dojo类型
混淆)dojoType
- 设置
会创建一个全局变量,而不是Dijit注册表的id;改为设置datadojoid
id
- 您也从来没有在文档上实际运行过
,因此即使解决了这些问题,您也不会得到实际的小部件dojo/parser
<body>
<table id="myTree" data-dojo-type="dojox/grid/TreeGrid" summary="This is a test">
...
</table>
</body>
<script>
require([
"dojo/parser",
"dijit/registry",
"dojo/data/ItemFileReadStore",
"dojox/grid/TreeGrid"
], function(parser, registry, ReadStore) {
parser.parse();
//var store = new ReadStore(...);
var tree = registry.byId("myTree");
console.log(tree);
// tree.setStore( store );
});
</script>
...
要求([
“dojo/parser”,
“dijit/注册表”,
“dojo/data/ItemFileReadStore”,
“dojox/grid/TreeGrid”
],函数(解析器、注册表、ReadStore){
parser.parse();
//var store=新的ReadStore(…);
var-tree=registry.byId(“myTree”);
控制台日志(树);
//树。设置存储(存储);
});
感谢您的回复,但我在您的示例中遇到以下错误:dojo/parser::parse()错误类型错误:无法读取未定义的{stack:(…)的属性“toString”,消息:“无法读取未定义的”}parser.js.uncompressed.js的属性“toString”,89我假设您至少在dojo 1.8上。如果您使用的是较早的数据,请尝试使用最初使用的数据dojo type=“dojox.grid.TreeGrid”,而不是我使用的模块ID语法。