当前位置 : 主页 > 网页制作 > Dojo >

如何以编程方式使用dojox.grid.DataGrid创建dijit.Dialog

来源:互联网 收集:自由互联 发布时间:2021-06-15
我有以下问题: 以编程方式创建dijit.Dialog和dojox.grid.DataGrid(链接到全局变量数据存储(dojo.store.Memory)),当对话框大小保持最小时,不显示对话框的内容. DataGrids Store正确填充,Firebug在Dialog中
我有以下问题:

以编程方式创建dijit.Dialog和dojox.grid.DataGrid(链接到全局变量数据存储(dojo.store.Memory)),当对话框大小保持最小时,不显示对话框的内容.

DataGrids Store正确填充,Firebug在Dialog中显示Grid.

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是否有必要放置
对话框中的网格.到目前为止,这两种变体都不起作用

最后,我不确定Dialog是否需要静态测量
正确的大小.根据我的经验,Dialog本身不需要静态
宽度或高度,但到目前为止我没有添加动态组件的经验
比如网格 – 可能会在启动后改变它的大小 – 到Dialog.

您不应该首先显示对话框,这样可以实现对话的目的.您需要创建网格,将domNode附加到对话框,然后显示对话框.这对我的所有代码都有用. 最好
网友评论