私は次の問題を抱えています:
プログラムで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();
}
);
たぶん私は間違った順序で何かを追加しましたか?
また、domNodeプロパティを使用してdojoウィジェットを結合/追加する方法が正しい方法であるかどうかもわかりません。
グリッドをダイアログ内に配置するために、使用しているContentPaneが必要かどうかはわかりません。両方のバリアントはこれまで機能しませんでした。
最後に、ダイアログが正しくサイズ設定するために静的測定が必要かどうか、どこで必要かわかりません。私の経験では、ダイアログ自体は静的な幅や高さを必要としませんが、グリッドのような動的コンポーネント(起動時に後でサイズが変更される可能性があります)をダイアログに追加した経験はありません。