2013-07-01 2 views
0

Я пытаюсь использовать 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(); 
} 
}); 

}); 

появляется диалоговое окно, но раскладка ужасно перепутались следующим образом: enter image description here

Я думаю, что это связано с порядком, в котором инициализируется dgrid. Я пробовал все, что мог придумать, но я до сих пор не могу понять, как правильно его инициализировать/

+0

Вы пробовали удаление второго параметров ('myDialog.containerNode') из конструктора таблицы и настройка сетки (или' свойства domNode' грида в) в качестве контента Dialog? Используя что-то вроде 'myDialog.set (« content », grid.domNode)'. – Default

+0

@Default: Я этого не пробовал. Я дам вам знать. –

+0

Это решение не срабатывает, потому что проблема связана с тем, когда вы создаете сетку, и она должна быть создана после создания диалога и отображения на экране, чтобы сетка могла рассчитать размер. – cabaji99

ответ

0

Нужно убедиться, что сетка вызывает метод изменения размера при отображении диалога. На данный момент ваша сетка запускается, пока диалог не отображается, поэтому он не имеет понятия, что делать с макетом и размером.

myDialog.on('show', someGridResizeFunction); 

И называют grid.resize() где-то в этой функции

+0

Это не работало для меня. – cabaji99

Смежные вопросы