У меня есть следующая проблема:
При программном создании dijit.Dialog и dojox.grid.DataGrid (связанных с глобальным хранилищем переменных данных (dojo.store.Memory)) содержимое диалогового окна не отображается, а размер диалогового окна остается минимальным.
Хранилище DataGrids заполнено правильно, и Firebug показывает сетку внутри диалогового окна.
data = new dojo.data.ObjectStore(
{ objectStore: new dojo.store.Memory({data:[]}) });
data.put({id:0,name:'Franklin'});
showDialog = function(){
var dlg = dijit.byId('myDlg');
if(dlg){
dlg.show();
}
else{
var cp = new dijit.layout.ContentPane({style:"width:500;height:500;"});
var grid = new dojox.grid.DataGrid({
store : data,
structure : [
{field:'id',name:'ID',width:'50px'},
{field:'name',name:'Name',width:'400px'}]
},cp);
dlg = new dijit.Dialog({
id:'myDlg',
title:'Names',
content:cp.domNode
});
grid.startup();
dlg.show();
}
);
Может я что-то не в том порядке добавил?
Также я не знаю, является ли мой способ комбинирования/добавления виджетов dojo с использованием свойства domNode правильным способом ведения дел.
Я не знаю, нужна ли ContentPane, которую я использую, для размещения сетки внутри диалогового окна. Оба варианта пока не работали.
Наконец, я не уверен, нужны ли и где Диалогу статические измерения для правильного размера. По моему опыту, самому диалоговому окну не нужна статическая ширина или высота, но у меня пока нет опыта добавления динамического компонента, такого как сетка, который может изменить свой размер позже при запуске, в диалоговое окно.