Я пытаюсь использовать Dojo dgrid внутри программно созданного Dojo диалога, используя следующий код:Как создать dgrid внутри программно созданного Dojo Диалог
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. Я пробовал все, что мог придумать, но я до сих пор не могу понять, как правильно его инициализировать/
Вы пробовали удаление второго параметров ('myDialog.containerNode') из конструктора таблицы и настройка сетки (или' свойства domNode' грида в) в качестве контента Dialog? Используя что-то вроде 'myDialog.set (« content », grid.domNode)'. – Default
@Default: Я этого не пробовал. Я дам вам знать. –
Это решение не срабатывает, потому что проблема связана с тем, когда вы создаете сетку, и она должна быть создана после создания диалога и отображения на экране, чтобы сетка могла рассчитать размер. – cabaji99