Javascript EXT JS 2.3;Internet Explorer 8;GridPanel记录换行,但不应';T
我正在使用ExtJS2.3并查看Internet Explorer 8出现的一个问题。如果您查看上示例中的“公司”列,它将删除过长的行,例如Javascript EXT JS 2.3;Internet Explorer 8;GridPanel记录换行,但不应';T,javascript,extjs,internet-explorer-8,Javascript,Extjs,Internet Explorer 8,我正在使用ExtJS2.3并查看Internet Explorer 8出现的一个问题。如果您查看上示例中的“公司”列,它将删除过长的行,例如E.I.du Pont de Nemours and Co.(仅为示例,不使用简单的阵列网格;仅使用普通网格面板) 这是我想要的正确行为,在Firefox和更高版本的Internet Explorer中就是这样 然而,在InternetExplorer8中,这一行实际上是换行的,占据了两行,最后一位在第二行 我查阅了2.3的文档,但没有找到任何似乎有用的配置
E.I.du Pont de Nemours and Co.
(仅为示例,不使用简单的阵列网格;仅使用普通网格面板)
这是我想要的正确行为,在Firefox和更高版本的Internet Explorer中就是这样
然而,在InternetExplorer8中,这一行实际上是换行的,占据了两行,最后一位在第二行
我查阅了2.3的文档,但没有找到任何似乎有用的配置选项。我尝试将autoHeight设置为false,但没有效果。我发现的大多数其他问题都是相反的,他们想把它包装起来,但事实并非如此
如何防止Internet Explorer 8包装
这是javascript
立柱模型
var columnModel = new Ext.grid.ColumnModel([
{
dataIndex: 'Name',
id: 'fieldLabel',
width: parseInt(width)/4
},
{
dataIndex: 'Description',
id: 'fieldDataGrey',
width: parseInt(width)/4
}
]);
网格面板1
var Grid1 = new Ext.grid.GridPanel({
id: 'Grid1',
name: 'Grid1',
store: DataStore1,
cm: columnModel,
width: parseInt(width)/2,
autoHeight: false,
collapsible: false,
frame: false,
stripeRows: false,
columnLines: true,
hideHeaders: true,
enableColumnHide: false,
disableSelection: true,
overCls: '',
loadMask: true
});
网格面板2
var Grid2 = new Ext.grid.GridPanel({
id: 'Grid2',
name: 'Grid2',
store: DataStore2,
cm: columnModel,
width: parseInt(width)/2,
autoHeight: false,
collapsible: false,
frame: false,
stripeRows: false,
columnLines: true,
hideHeaders: true,
enableColumnHide: false,
disableSelection: true,
overCls: '',
loadMask: true
});
字段集
var FieldSet = new Ext.form.FieldSet({
id: 'FieldSet',
name: 'FieldSet',
title: 'Title',
border: true,
width: width,
autoHeight: false,
labelWidth: 125,
bodyStyle: 'padding:2px; margin:0px',
style: 'padding:2px; margin:0px',
layout: 'tableform',
layoutConfig: {
columns: 2,
columnWidths:[.5, .5]
},
items: [
Grid1,
Grid2,
{
labelWidth: 125,
layout: 'form',
bodyStyle:'padding:2px 0px 0',
items: Label,//Didn't include label with posted code
colspan: 2
}
]
});
尝试使用2.2.1 ExtJs版本或3.x。我认为问题在于Ext发行版中的Ext.js模块,在那里可以检测到浏览器版本。经过进一步测试,我没有找到我希望的解决方案,但我确实通过使用渲染器而不是
fieldDataGrey
id,以及使用列布局而不是表格布局来部分修复了它。Ext.grid.ColumnModel有一个名为“renderer”的配置选项。我经常将此函数用于Ext在配置选项中未提供的样式设置或DOM操作。您可以尝试使用renderer函数并返回一个带有自定义样式的HTML字符串,该样式不强制对数据进行包装
比如说,
renderer: function(value, metadata, record, rowIndex, colIndex, store) {
var style = 'overflow:hidden; white-space: nowrap; width: 100px;',
html = '<span style="' + style + '">' + value + '</span>';
return html;
}
renderer:function(值、元数据、记录、行索引、colIndex、存储){
变量样式='溢出:隐藏;空白:nowrap;宽度:100px;',
html=“”+值+“”;
返回html;
}
其中“width”(本例中为100px)是您在专栏中定义的宽度。感谢您的回复,除了升级我的ExtJs版本,还有其他解决方法吗?由于我无法控制的原因,我现在无法升级。您可以查看最新版本并手动根据新版本更改Ext.js文件。在这里回答自问不好。你应该在你的主要帖子中写一个答案。@Thevs我不太明白,“在这里回答自问不好”1。为什么不呢?你的答案是正确的,所以我投了赞成票,但不是我想要的——我自己发现了一个解决方案,所以这个问题不应该结束吗?2.这里指的是哪里?通常你帖子的答案会添加到问题的评论中,或者在问题的底部(标记为编辑:)@Thevs我认为最好将自己的答案作为答案,而不是评论或编辑。优点:以后搜索的用户对回答的人不感兴趣,但只有在回答是确定的情况下才感兴趣。将答案作为编辑不好,因为问题不会标记为已解决。但您的答案不是解决方案。这是一个变通办法。