如何在以编程方式创建的Dojo对话框中创建网格

时间:2013-07-01 06:50:26

标签: layout dojo dialog dgrid

我正在尝试使用以下代码在编程创建的Dojo对话框中使用Dojo dgrid:

define(["dojo/_base/declare","dgrid/Grid", "dijit/Dialog"], function (declare, Grid, Dialog){
    return declare("modules.egisDataGrid", null, {

showFeedBack:function(){

var myDialog = new Dialog({
    title: "FeedBackList",
    style: "width: 600px; height:320px;",
    content: ""
});

var data = [
        { first: "Bob", last: "Barker", age: 89 },
        { first: "Vanna", last: "White", age: 55 },
        { first: "Pat", last: "Sajak", age: 65 }
    ];

    var grid = new Grid({
        columns: {
            first: "First Name",
            last: "Last Name",
            age: "Age"
        }
    }, myDialog.containerNode);


    grid.renderArray(data);
    grid.startup();
      myDialog.show();
 }
 });

});

出现对话框,但布局非常混乱,如下所示: enter image description here

我认为这是由于dgrid的启动顺序。我已经尝试了所有我能想到的东西,但我仍然无法弄清楚如何正确地启动它/

1 个答案:

答案 0 :(得分:0)

在显示对话框时,您需要确保网格调用其resize方法。目前,在未显示对话框的情况下启动网格,因此在布局和大小不变的情况下,它不知道该做什么。

myDialog.on('show', someGridResizeFunction);

并在该函数中的某处调用grid.resize()