Javascript EXT JS 2.3;Internet Explorer 8;GridPanel记录换行,但不应';T

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的文档,但没有找到任何似乎有用的配置

我正在使用ExtJS2.3并查看Internet Explorer 8出现的一个问题。如果您查看上示例中的“公司”列,它将删除过长的行,例如
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我认为最好将自己的答案作为答案,而不是评论或编辑。优点:以后搜索的用户对回答的人不感兴趣,但只有在回答是确定的情况下才感兴趣。将答案作为编辑不好,因为问题不会标记为已解决。但您的答案不是解决方案。这是一个变通办法。