我正在尝试使用以下代码在编程创建的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();
}
});
});
出现对话框,但布局非常混乱,如下所示:
我认为这是由于dgrid的启动顺序。我已经尝试了所有我能想到的东西,但我仍然无法弄清楚如何正确地启动它/
答案 0 :(得分:0)
在显示对话框时,您需要确保网格调用其resize方法。目前,在未显示对话框的情况下启动网格,因此在布局和大小不变的情况下,它不知道该做什么。
myDialog.on('show', someGridResizeFunction);
并在该函数中的某处调用grid.resize()