看看下面這個例子我寫了回答另一個dgrid
相關的問題:http://jsfiddle.net/phusick/VjJBT/
你正在尋找的CSS規則是:
#grid {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
編輯:我認爲這可能是一個問題dgrid
版本,所以我將我的dgrid
更新到最新版本0.3.3,併爲您的問題創建了一個測試:http://jsfiddle.net/phusick/5mHTS/。
嗯,這不是版本問題,0.3.1和0.3.3在調整BorderContainer
時都可以正常工作,但只能在Chrome和Firefox中使用。我轉載的問題,在IE9和Opera 12.10:
電網需要調用grid.resize()
適當調整,調整BorderContainer
時不會在IE9 /歌劇,發生,但是當你調整窗口的大小總是會發生。
DijitRegistry
修復該問題,因爲佈局的構成要素,像BorderContainer
和ContentPane
,調整時要調用resize()
其所有的dijit孩子。
因此,要麼子類DijitRegistry
或dojo/aspect
監聽resize
對電網的父ContentPane
並調用grid::resize()
:
aspect.after(contentPane, "resize", function() {
grid.resize();
});
感謝您的提示,@phusick。我補充說,但問題似乎一直存在。當我在JSFiddle示例中查看Chrome的代碼檢查器視圖時,我注意到'dgrid-header'類行沒有設置寬度。然而,在我的代碼中,Dojo似乎爲'div'標記添加了一個'style =「width:XXXpx;」'(它不是由我進行硬編碼)。當窗口調整大小時,將更新此固定寬度,但當拆分器移動時,固定寬度不會更新。任何想法爲什麼它設定一個固定的寬度? –
實際上,就我看來,Dijit(或dojo.parser?)會在頁面上添加這些固定樣式。而且他們沒有適當調整所有的時間。我需要設置一些常規設置嗎?如果我在CSS中的'.dgrid-header-row'上使用'!important',我可以覆蓋固定寬度的內聯樣式,但這些感覺像是一種黑客。 –
爲了不斷回覆自己,似乎如果我告訴dgrid在DijitRegistry中混合使用,效果會更好(雖然我不清楚爲什麼你的示例沒有混合它並且工作正常 - 思想?)。然而,我的標題ContentPanel不會動態調整到頁面寬度,一旦dgrid呈現,我不知道爲什麼。有什麼建議麼? –