我有以下问题:
以编程方式创建一个 dijit.Dialog 和一个 dojox.grid.DataGrid(链接到一个全局变量数据存储 (dojo.store.Memory)),当 Dialog 大小保持最小时,不显示 Dialog 的内容。
DataGrids Store 已正确填充,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 属性是正确的做事方式。
我不知道我使用的 ContentPane 是否需要放置
对话框内的网格。到目前为止,这两种变体都不起作用。
最后,我不确定 Dialog 是否以及在哪里需要静态测量
尺寸正确。根据我的经验,对话框本身不需要静态
宽度或高度,但到目前为止我还没有添加动态组件的经验
就像 Grid - 它可能会在启动时改变其大小 - 到一个对话框。
最佳答案
您不需要先显示对话框,这超出了进行对话框的目的。您需要创建网格,将 domNode 附加到对话框,然后显示对话框。这适用于我的所有代码。
最好的事物
关于dialog - 如何以编程方式创建带有 dojox.grid.DataGrid 的 dijit.Dialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017594/