2012-06-29 72 views
0

我正在使用帶有IE9瀏覽器的Dojo 1.7。我試圖動態生成多個DataGrid並將它們追加到div內的內容。我正在使用網格的autoHeight屬性。Dojo DataGrid autoHeight不能在IE9中工作

這在Chrome或Firefox中運行良好。但是,直到我將高度設置爲固定值之後,網格纔會顯示在IE上。

如何讓autoHeight在IE中工作?我懷疑它與IE9如何處理高度語義有關。

回答

0

在IE上,我必須確保我在動態添加的網格上調用啓動。例如如果您在postCreate中添加網格,請嘗試以下操作:

startup: function() { 
    this.inherited(arguments); 
    if (this.grid) this.grid.startup(); 
} 

網格可能很挑剔。即使這樣做,我仍然在使用autoHeight的IE(IE9)上遇到高度問題。如果我在事後設置了更新後的商店,則高度將變爲0.

2

直到幾分鐘前,我一直在處理相同的問題:我正在創建動態網格,具體取決於列表中有多少項並且每個網格都使用autoHeight顯示。問題與網格或其高度無關。

我不確定,但IE以不同的方式解釋圖層,所以你必須以具體的方式添加它們。嘗試將網格首先添加到您的DOM節點(我的意思是您也將動態創建的節點,您將在其上添加網格),然後將此網格容器的最後一個位置添加到HTML中。它對我來說工作正常。

1

我也面臨同樣的問題。我試圖找到替代品。

我遵循這種方式和它的工作。

添加以下屬性

dojox.grid.datagrid 
onShow: function(){if(grid)grid.setStore(store);} 

並調用grid.onShow();

var grid= new dojox.grid.DataGrid({ 
    store : store, 
    query : { 
     sno : "*" 
    }, 
    autoHeight:true, 
    structure : columns, 
    selectionMode : "Multiple", 
    onShow: function(){if(grid)grid.setStore(store);} 
    }); 

// This will fire the onShow event on grid. 
grid.onShow();