Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grid GXT-根据行中的一个单元格为整个网格行着色_Grid_Gxt - Fatal编程技术网

Grid GXT-根据行中的一个单元格为整个网格行着色

Grid GXT-根据行中的一个单元格为整个网格行着色,grid,gxt,Grid,Gxt,。 我根据单元格的值给一列上色,但我想给gxt网格中的整行(表示包含单元格的行)上色帮助我 这是我给单元格上色的代码(我想给行上色,而不是给单元格上色) /*------着色区域------------*/ GridCellRenderer ColoredGrid=新的GridCellRenderer(){ @凌驾 公共对象渲染(BeanModelType模型, 字符串属性,ColumnData配置, int行索引,int colIndex, ListStore商店, 网格(网格){ 字符串va

。 我根据单元格的值给一列上色,但我想给gxt网格中的整行(表示包含单元格的行)上色帮助我 这是我给单元格上色的代码(我想给行上色,而不是给单元格上色)

/*------着色区域------------*/
GridCellRenderer ColoredGrid=新的GridCellRenderer(){
@凌驾
公共对象渲染(BeanModelType模型,
字符串属性,ColumnData配置,
int行索引,int colIndex,
ListStore商店,
网格(网格){
字符串valueOfCell=model.get(属性);
字符串样式=valueOfCell.equals(“Book”)?“绿色”:
单元格的值等于(“Ersr”)?“红色”:
单元格的值等于(“笔”)?“黄色”:
单元格的值等于(“comp”)?“蓝色”:“;
//Config是单元格,我们在这里设置样式
config.style=“背景色:”+样式;
单元的返回值;
}    
};  
System.out.println(“colorrrrrr”+cleanColoredGrid.toString());
column.setRenderer(ColoredGrid);
/*-------------着色区结束-------*/
添加(列);

在每个渲染方法中,您将模型作为参数之一,因此尝试为每列设置相同的渲染器,但将“property”替换为包含字符串的属性名称,该属性的类型为item。假设您将其命名为“itemName”,因此将代码更改为:

model.get("itemName");  
可能需要强制转换,因为model.get()应该返回对象

现在,在每一列中都将执行相同的检查,并且所有列都应为一种颜色。
如果可以,下一步可能是一些优化:如果first check返回一些颜色,将其设置到model to color的hashmap中(或直接作为新属性设置到模型中),并在渲染器中添加一个条件,该条件将检查颜色是否尚未分配。

如果您使用的是GXT>2.x.x,正确的方法是将新的GridViewConfig附加到网格视图

您可能应该这样做:

grid.getView().setViewConfig(new GridViewConfig() {
        @Override
        public String getRowStyle(ModelData model, int rowIndex, ListStore<ModelData> ds) {
            if (model != null) {
                                    //TODO: put your conditions here
                if ("YOUR_CONDITION".equals(model.get("BOOK_COLOR))) {
                    return "green-row";
                }
            }
            return "";
        }
    });
grid.getView().setViewConfig(新的GridViewConfig()){
@凌驾
公共字符串getRowStyle(ModelData模型、int-rowIndex、ListStore ds){
如果(型号!=null){
//托多:把你的条件写在这里
如果(“你的条件”。等于(model.get(“书本颜色”)){
返回“绿行”;
}
}
返回“”;
}
});
您应该相应地修改css(注意,绿色行是css样式类的名称)


请参阅此参考:

谢谢Denu…非常感谢它能够正常工作。我将style声明为全局变量,并在第一列中调用了方法,然后样式值(背景色)是字符串(style)然后,我创建了一个新方法,并给出了
config.style=style
…我很高兴您能运行它。如果您将我的答案标记为“已接受”,我将不胜感激“-当然,如果你认为我引导你的方向是正确的:)不幸的是,这种方法不适用于动态生成的背景色,而只适用于预定义的类。
grid.getView().setViewConfig(new GridViewConfig() {
        @Override
        public String getRowStyle(ModelData model, int rowIndex, ListStore<ModelData> ds) {
            if (model != null) {
                                    //TODO: put your conditions here
                if ("YOUR_CONDITION".equals(model.get("BOOK_COLOR))) {
                    return "green-row";
                }
            }
            return "";
        }
    });