Javascript DojoDataGrid,编程创建
我正在尝试动态创建一个DataGrid。声明式创建工作正常: 数据来源:Javascript DojoDataGrid,编程创建,javascript,dojo,Javascript,Dojo,我正在尝试动态创建一个DataGrid。声明式创建工作正常: 数据来源: <span dojoType="dojo.data.ItemFileReadStore" jsId="theStore" url="dataonly001.json"> </span> 简单布局: <script type="text/javascript" > var layout = [ { field: 'custId',
<span dojoType="dojo.data.ItemFileReadStore"
jsId="theStore" url="dataonly001.json">
</span>
简单布局:
<script type="text/javascript" >
var layout = [ {
field: 'custId',
name: 'Id',
} // more items elided ...
];
</script>
网格:
<body class="tundra" id="mainbody">
<div id="grid"
dojoType="dojox.grid.DataGrid"
store="theStore"
structure="layout"
autoWidth="true"
></div>
</body>
我可以很好地显示网格。相反,我希望动态创建网格。为了找出什么是坏的,我尝试使用完全相同的布局和存储,只删除网格声明并添加以下脚本:
<script type="text/javascript" djConfig="parseOnLoad: true, debugAtAllCosts: true">
dojo.addOnLoad(function(){
// initialise and lay out home page
console.log("Have a store:" + theStore);
console.log("Have a structure:" + layout);
var grid = new dojox.grid.DataGrid({
id : "grid",
store : theStore,
clientSort : "true",
structure : layout
});
grid.startup();
dojo.place(grid.domNode, dojo.body(), "first");
});
</script>
我得到的效果是显示一个完全空的矩形。使用FireBug,我可以看到DataGrid小部件已创建,但它没有行或列。因此,我猜测数据存储或布局没有正确传递。但是,在创建时,存储和布局的值似乎是正确的
建议,或者一个编程网格的工作示例可能会解决这个问题。首先将网格连接到DOM,然后创建小部件实例 所以简单地代替
grid.startup();
dojo.place(grid.domNode, dojo.body(), "first");
写
您甚至可以在构造函数中设置每个Dojo小部件的容器节点
var grid = new dojox.grid.DataGrid({
⋮
}, dojo.byId('grid_container'));
grid.startup();
首先将网格连接到DOM,然后创建小部件实例 所以简单地代替
grid.startup();
dojo.place(grid.domNode, dojo.body(), "first");
写
您甚至可以在构造函数中设置每个Dojo小部件的容器节点
var grid = new dojox.grid.DataGrid({
⋮
}, dojo.byId('grid_container'));
grid.startup();