2012-12-06 44 views
0

由於td元素上的nowrap似乎不適用於IE,請參閱this question,我迫切需要幫助如何添加span元素nowrap到Dojox Datagrid中的每個單元格,而無需定義字段格式化程序來完成此任務。Dojox Datagrid,將span擴展到每個單元格以使css nowrap在IE7中工作

見的jsfiddle這裏http://jsfiddle.net/HkxHZ/4/

使用這個CSS我得到了我想要在Chrome和FF,即無字包裝和溢出隱藏。不過,這並不在IE工作..

<style type="text/css"> 

.dojoxGridRowTable { 
    table-layout: fixed; 
    width: 0px;} 

.dojoxGrid .dojoxGridCell { 
    text-align: left; 
    overflow:hidden; 
    white-space:nowrap;} 

</style>​ 

回答

1

,此方法類似於自動大小是將每一列的寬度在DataGrid足夠大,沒有包裝,以顯示您的數據。

你應該做的是根據列描述中的文本的PX大小和該列的數據爲網格佈局的每一列計算適當的寬度。這應該在創建網格佈局之前完成。

這裏是你如何得到適當的px寬度。下面的HTML代碼添加到您的網頁: CSS:

#test 
    { 
    position: absolute; 
    visibility: hidden; 
    height: auto; 
    width: auto; 
    } 

    <div id="test"></div> 

1)獲取您的DataGrid

2)使用的字體大小獲得的div對象,並設置字體大小,什麼是在網格中使用

<div id="test"></div> 

var tst_item = window.document.getElementById("test"); 
tst_item.style.fontSize = grid_fnt_sz; 

3)將適用於您的數據網格到隱藏的div每一列的描述和數據項:

tst_item.innerHTML = "Your data"; 
var widthPX = (tst_item.clientWidth + 1); //Width of text in PX 

將此widthPX存儲在每個列的數組中,僅保留找到的最大列。

4)當創建爲網格的佈局,該列的寬度從列描述的數據和用於該列設定爲最大寬度。

此方法可確保每列的寬度將大到足以顯示你的數據,而無需包裝。根據您的需要,您可以按邏輯操作來執行所需的操作。對於大量數據來說這可能不可行。但是,它對我很好。