由于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>
答案 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)为网格创建布局时,请将列的宽度设置为列描述的最大宽度和该列的数据。
此方法可确保每列的宽度足以显示您的数据而不会换行。根据您的需要,您可以调整逻辑以满足您的需求。对于大量数据,这可能不可行。但是,它对我很有用。