Я пытаюсь создать DataGrid динамически. Декларативного создание работает отлично:Dojo DataGrid, программное создание
источник данных:
<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 создан, но у него нет строк или столбцов. Поэтому я предполагаю, что хранилище данных или макет не передаются правильно. Однако, похоже, что в момент создания значения theStore
и layout
верны.
Предложения, пожалуйста, или действительно рабочий пример программной сетки могут решить проблему.
Переупорядочивание работало приятно. – djna