2013-07-01 75 views
0

我試圖用一個道場dgrid一個編程方式創建道場對話框中使用下面的代碼裏面:如何創建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啓動的順序。我試過了我能想到的所有東西,但是我仍然無法弄清楚如何正確初始化它/

+0

地方調用grid.resize()你試過從您的網格構造函數中刪除第二參數('myDialog.containerNode'),並設置網格(或網格的'domNode'財產)作爲Dialog的內容?使用'myDialog.set(「content」,grid.domNode)''。 – Default

+0

@默認:我沒有試過。我會讓你知道的。 –

+0

解決方案不起作用導致問題出現在您創建網格時,並且必須在創建對話框並在屏幕上顯示後才創建,以便網格可以計算大小。 – cabaji99

回答

0

當顯示對話框時,您需要確保網格調用其resize方法。在對話框沒有顯示的時候,當你的網格被啓動時,所以它不知道佈局和大小如何去做。

myDialog.on('show', someGridResizeFunction); 

而且在功能

+0

這沒有爲我工作。 – cabaji99