Gridview 如何根据严重性更改datagrid中的行颜色?

Gridview 如何根据严重性更改datagrid中的行颜色?,gridview,extjs,gridpanel,Gridview,Extjs,Gridpanel,如何根据严重性条件更改datagrid中的行颜色?我不熟悉这个EXTJS主题。我过去习惯于用读卡器来读,用存储来存储,用写卡器来写数据。将所有数据提取到网格中后,如何根据严重性条件更改datagrid中的行颜色?你能不能解释一下我的代码是否正常工作?你可以使用GridView的getRowClass方法来完成这项工作 引用API文档中的示例: viewConfig: { forceFit: true, showPreview: true, // custom property

如何根据严重性条件更改datagrid中的行颜色?我不熟悉这个EXTJS主题。我过去习惯于用读卡器来读,用存储来存储,用写卡器来写数据。将所有数据提取到网格中后,如何根据严重性条件更改datagrid中的行颜色?你能不能解释一下我的代码是否正常工作?

你可以使用GridView的getRowClass方法来完成这项工作

引用API文档中的示例:

viewConfig: {
    forceFit: true,
    showPreview: true, // custom property
    enableRowBody: true, // required to create a second, full-width row to show expanded Record data
    getRowClass: function(record, rowIndex, rp, ds){ // rp = rowParams
        if(this.showPreview){
            rp.body = '<p>'+record.data.excerpt+'</p>';
            return 'x-grid3-row-expanded';
        }
        return 'x-grid3-row-collapsed';
    }
},
您可以使用GridView类Ext.grid.GridView来操作网格的用户界面。还可以使用GridPanel的viewConfig属性。以下是一个例子:

viewConfig: {
        //Return CSS class to apply to rows depending upon data values
        getRowClass: function(record, index) {
            var c = record.get('change');
            if (c < 0) {
                return 'price-fall';
            } else if (c > 0) {
                return 'price-rise';
            }
        }
    }

您可以使用列模型中的列渲染器,然后指定如下css类:

.redUnderlinedText {
    background-color: blue,
    color: red;
    text-decoration: underline;
    cursor: pointer;
}
因此,customRenderer函数:

`

}`

然后是你的专栏:

        {
            header: 'Your Column Header',
            dataIndex: 'your_data_index',
            renderer: customRenderer
        }
然后,您的css可以如下所示:

.redUnderlinedText {
    background-color: blue,
    color: red;
    text-decoration: underline;
    cursor: pointer;
}

谢谢,但是我不熟悉上面的代码?你在做什么?它可以用来改变行的背景颜色吗?@lucian:我理解并得到了上述代码的概念。它是否适用于改变行的背景颜色?我是否需要创建一个单独的css来更改不同的行颜色?参数记录是什么意思?如何指定rowindex和columnindex?record参数表示网格中的整行。此方法的概念如下:将在渲染时为存储中的每个记录调用该函数。因此,如果您有5行,该函数将使用相应的参数调用5次。您不必专门设置rowIndex和columnIndex变量,它们将被相应的值填充。这使我们能够根据当前记录中的一些信息分别为每一行自定义该列。我希望我回答了你的问题。上面代码中的“更改”是索引值????函数中的记录和索引到底意味着什么?@Abdel Olakara:记录意味着什么?我希望它能应用尽可能多的行。我怎样才能使它成为一个循环?@master123,你看过API文档了吗?getRowClass有四个参数:getRowClass记录记录、编号索引、对象rowParams、存储存储-首先是存储中的记录对象,索引是您的行号,rowParams是行的参数,最后是存储本身。如何使其适用于网格中的所有行?是否需要循环,如何进行?不需要循环。呈现网格时,extjs将为每条记录调用getRowClass。您是否有定义要使用的背景颜色的变量?如果价格低于红色,则表示绿色。因此,您可以使用上面代码中所示的if语句进行比较。
.redUnderlinedText {
    background-color: blue,
    color: red;
    text-decoration: underline;
    cursor: pointer;
}