extjs 4 网格第一次加载时显示不正确

Posted

技术标签:

【中文标题】extjs 4 网格第一次加载时显示不正确【英文标题】:extjs 4 grid is not displayed correctly the first time it loads 【发布时间】:2013-09-04 05:48:27 【问题描述】:

我有以下问题。我有一个带有自定义行高的网格,它是用 css 设置的。

我的css:

.blubb>td 
    overflow: hidden;
    padding: 3px 6px;
    white-space: nowrap;
    height: 27px !important;

在 getRow 类中,我将此类分配给行。这在我第二次加载网格时效果很好。当我第一次加载网格时,它看起来像这样:

所以看起来 Css 规则不会应用于行,但是为什么当我第二次加载网格时会应用它们?您还应该知道,前 4 列是锁定的,所以这是一个锁定的网格。有人可以帮我解决这个问题吗?提前谢谢!

【问题讨论】:

【参考方案1】:

您可以在Ext.grid.column.Column see here 中使用tdCls 属性,而不是使用getRow,或者您可以定义一个自定义列:

Ext.define('Ext.ux.grid.StyleColumn', 
    extend: 'Ext.grid.column.Column',
    alias: 'widget.stylecolumn',
    /* author: Alexander Berg, Hungary */

    defaultRenderer: function(value, metadata, record, rowIndex, colIndex, store, view) 
        var column = view.getGridColumns()[colIndex];
        //we can use different classes in each cell
        if (record.data.tdCls) 
            metadata.tdCls = record.data.tdCls;
        //we can use different classes in each column
         else if (column.tdCls) 
            metadata.tdCls = record.data.tdCls;
        //we can use different classes in each grid (you can define it in viewConfig)
         else if (view.rowCls) 
            metadata.tdCls = view.rowCls;
        //we can add a default class
         else 
            metadata.tdCls = 'mydefault';
               
        return value;
    
);

【讨论】:

以上是关于extjs 4 网格第一次加载时显示不正确的主要内容,如果未能解决你的问题,请参考以下文章

VB.net DataGridView 更改数据时显示不正确

自定义 tableViewCell 滚动时显示不正确

JCrop - JCrop 持有人在移动/调整选择时显示不正确的图像

Android ListView 在向下滚动时显示不正确的内容,然后在向上滚动时显示正确的内容

UITableviewCell在ios中滚动时显示不正确

在激活 extjs 4 时清除可编辑的网格单元