Dojox Datagrid,为每个单元添加跨度,使css nowrap在IE7中工作

时间:2012-12-06 20:51:10

标签: dojox.grid.datagrid

由于now上的td元素似乎在IE中不起作用,请参阅this question,我迫切需要帮助如何使用nowrap将span元素添加到Dojox Datagrid中的每个单元格,而无需定义字段格式化程序来完成此任务。

请参阅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 个答案:

答案 0 :(得分: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)将用于DataGrid的每个列描述和数据项放入隐藏的div:

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

将此widthPX存储在每个列的数组中,仅保留为该列找到的最大值。

4)为网格创建布局时,请将列的宽度设置为列描述的最大宽度和该列的数据。

此方法可确保每列的宽度足以显示您的数据而不会换行。根据您的需要,您可以调整逻辑以满足您的需求。对于大量数据,这可能不可行。但是,它对我很有用。