Ext grid显示的行记录背景颜色都是一样的,这样不容易区分不同行的颜色、方便用户区分不同的记录。

改变单元格背景颜色的方法有几种,由简单的说起吧!

第一种情况:加载数据时改变列的颜色。这种方式是通过Ext.grid.ColumnModel中某一列的renderer 函数来实现的。

首先定义一个样式如下:

.x-grid-record-gray{

background: #c3daf9;

}

定义改变颜色的列,加上renderer 渲染函数:

{header:’摘要’,dataIndex:’zhaoyao’,align:’left’,width:150,

renderer : function(value, m){

m.css=’x-grid-record-gray’;

return value;

}

}

第二种情况:加载数据完成后改变行的颜色

首先要解决的一个问题是如果判断数据已经加载完毕,最简单的方法是给grid的store添加onload事件。

如果你想有条件地改变某行的背景颜色,则还需要遍历gird的store,这里有个简单的方法即store的

each方法。看下面这个例子:

grid.getStore().addListener(‘load’,handleGridLoadEvent);

function handleGridLoadEvent(store,records) {

var girdcount=0;

store.each(function(r){

if(r.get(‘STORESUSEDQTY’)==0){

grid.getView().getRow(girdcount).style.backgroundColor=’#c3daf9′;

}

girdcount=girdcount+1;

});

}

第三种情况:使用Ext本身的颜色渲染效果

在grid中配置stripeRows为true,可以实现隔行变色,但不能达到根据不同记录集实现不同颜色的显示效果.

说完上面常见的几种方法之后,在来结合项目中的需求来实现背景颜色变色。现在项目中的Ext grid表格是三方公司用代码更具配置文件动态生成的,其代码都封装了一个动态命名的命名空间里,JavaScript代码写在了页面上。我只能在这个Ext grid代码生成之后获得一个grid引用。

下面是部分代码:

Ext.namespace(‘BO_PC_REQUIRE_S’);

BO_PC_REQUIRE_S.Grid=function(){

currentRowInd=0;

currentColInd=0;

var AWS_GRID_CHECK;

var AWS_FORM;

var AWS_GRID_DS_PLANT;

var AWS_GRID_DS;

var AWS_GRID_CM;

var AWS_GRID_PANEL;

return {

perPage: 50,

currentRowInd:0,

currentColInd:0,

init : function(){

},

getDataSource: function() {

return AWS_GRID_DS;

},

getGridPanel: function() {

return AWS_GRID_PANEL;

},

getCurrentRowInd: function() {

return currentRowInd;

},

getCurrentColInd: function() {

return currentColInd;

},

getTitle: function(){

return ‘采购需求单子表(设计师)’;

},

saveData: function(){

if(typeof(outerDoSaveGrid)==’function’){return outerDoSaveGrid();}

},

setCellValue: function(f,v,r){

var rowInd=currentRowInd;

if(r!=undefined)rowInd=r;

AWS_GRID_DS.getAt(rowInd).set(f,v);

},

getCellValue: function(f,r){

var rowInd=currentRowInd;

if(r!=undefined)rowInd=r;

return AWS_GRID_DS.getAt(rowInd).get(f);

}

}//End return

});

参考上门说的三种方法,第一种不可实现,第二种可以实现,但存在一些问题:数据加载完之后,达到不同行显示不同背景色的目的,但是当你单击表头进行排序的时候,表格内的所有行背景颜色又都回到了默认颜色,让人烦恼!这时候想想,我可不可以重写表头的事件,使执行这些事件的时候,也是行背景变色呢?实现代码如下:

BO_PC_REQUIRE_S.Grid.getGridPanel().getStore().addListener(‘load’,

handleGridLoadEvent);

function handleGridLoadEvent(store,records) {

var girdcount=0;

store.each(function(r){

if(r.get(‘STORESUSEDQTY’)==0){

BO_PC_REQUIRE_S.Grid.getGridPanel().getView().getRow(girdcount).style.backgroundColor=’#c3daf9′;

}

girdcount=girdcount+1;

});

}

BO_PC_REQUIRE_S.Grid.getGridPanel().addListener(‘headerclick’,

function(){

var girdcount=0;

BO_PC_REQUIRE_S.Grid.getDataSource().each(function(r){

if(r.get(‘STORESUSEDQTY’)==0){

BO_PC_REQUIRE_S.Grid.getGridPanel().getView().getRow(girdcount).style.backgroundColor=’#c3daf9′;

}

girdcount=girdcount+1;

});

});

BO_PC_REQUIRE_S.Grid.getGridPanel().addListener(‘headermousedown’, function(){});

这样做又有了问题,表格排序事件不起作用了,有没有更好的解决办法呢?看看API,grid里有个视图,通过改变视图里的getRowClass方法,可以实现行跨多列显示、单行内显示多行内容等等效果。可不可以参照这个思路,通过改变css实现行背景换色呢?

代码如下:

BO_PC_REQUIRE_S.Grid.getGridPanel().getView().getRowClass=function(record,rowIndex,rowParams,store){

if(record.data.STORESUSEDQTY==0){

return ‘x-grid-record-gray’;

}else{

return ”;

}};

第四种情况:首先在extjs 里的ext-all.css样式里任意写一个样式,如:

.x-grid-record-blue table{color:blue;}

.x-grid-record-green table{color:green;}

.x-grid-record-red table{color:red;}

然后在js里面写如下代码:

wxpython grid设置字体颜色_Ext grid改变行背景颜色 和改变行字体颜色相关推荐

  1. 改变android背景方法,android 改变背景图片的两种方法

    1.利用drawable XML 在res/drawable下创建文件,如:myselect.xml android:drawable="@drawable/buttom_focused&q ...

  2. 【Android】动态获取当前背景图,根据背景图色动态改变字体颜色

    情况描述:市面上很多的App,在展示头部的时候会采用用户传输的图片进行高斯模糊处理,然后设置成背景,这上面再展示其他的信息,例如,姓名,签名,编辑之类的操作按钮. 问题:但是字体颜色你是设置为白色,还 ...

  3. unity背景设置透明,显示ios原生ui背景

    unity2021.3.5f1     xcode 14 相机设置为solid color, 背景颜色设置为黑色透明度为0(一定设置成黑色,设置成其他颜色打包出来和ios背景融合出很奇怪的颜色),pl ...

  4. wxpython中表格顶角怎么设置_46-wxpython 4 使用 grid 展示表格

    文章导航 wx.grid.Grid Grid这个控件主要是用于显示和编辑表格数据. 控件样式在OS X 系统下显示样式 使用样例 import wx import wx.grid class Grid ...

  5. [转载]ExtJS中grid按照中文拼音首字母排序、改变行背景、列背景、静态数据分页不再困难...

    代码 1 本示例主要使用到了静态数据分页 Ext.data.PagingMemoryProxy组件.Ext.PagingToolbar分页条.viewConfig的getRowClass 方法.列co ...

  6. echarts - 条形图grid设置距离绘图区域的距离

    在一些数据量过大的情况下,在一个固定的区域绘图往往需要对图表绘制区域的大小进行动态改变.这时候设置条形图距离绘图区域上下左右的距离可使用如下方式:表示条形图的柱子距离绘图区左边30%,距离右边40%, ...

  7. CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景

    全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ...

  8. echarts图表的内边距_echarts - 条形图grid设置距离绘图区域的距离

    在一些数据量过大的情况下,在一个固定的区域绘图往往需要对图表绘制区域的大小进行动态改变.这时候设置条形图距离绘图区域上下左右的距离可使用如下方式:表示条形图的柱子距离绘图区左边30%,距离右边40%, ...

  9. 如何在改变mfc控件上文字的字体和颜色

    改变字体 在OnInitDialog()函数对应的.h文件中定义CFont font,然后在OnInitDialog()函数中添加如下代码: font.CreatePointFont(400, _T( ...

  10. python使用matplotlib可视化:设置坐标轴的范围、设置主次坐标轴刻度、坐标轴刻度显示样式、坐标轴刻度数颜色、小数点位数、坐标轴刻度网格线、线条类型、数据点形状标签、文本字体、颜色、大小等

    python使用matplotlib可视化:设置坐标轴的范围.设置主次坐标轴刻度.坐标轴刻度显示样式.坐标轴刻度数颜色.小数点位数.坐标轴刻度网格线.线条类型.数据点形状标签.文本字体.颜色.大小等 ...

最新文章

  1. 推荐系统算法总结(三)——FM与DNN DeepFM
  2. leetcode majority number
  3. 【渝粤题库】陕西师范大学400011 思想政治教育学科教学论 作业(专升本)
  4. Vue3 --- 安装和使用echarts
  5. python字符串_python字符串格式化
  6. Oracle表的修改和删除以及回收站操作
  7. 使用RegistryKey的一个注意点
  8. 做游戏怎能没有马云马化腾?
  9. 解决虚拟机在能ping通网关情况下出现From 192.168.1.10: icmp_seq=1 Redirect Network(New nexthop: 192.168.1.1)问题
  10. 在虚拟机上安装Kali Linux的简易指南
  11. Cockos REAPER for Mac - 多音轨录制编辑软件
  12. tensorflow中prefetch最合适的用法
  13. 赤兔oracle恢复软件 收费,赤兔Oracle数据库恢复软件下载 v11.6官方版-下载啦
  14. 怎样用 Excel 快速做数据分析?
  15. 2022东南大学网安916考研经验贴
  16. sql server 经典练习题分享二
  17. Queue接口分析:add和offer区别,remove和poll方法到底啥区别
  18. 终于懂了汇编代码为什么从键盘上输入字符,将该字符的ASCII显示在屏幕上必须要加30或37(附汇编代码)
  19. Magento的订单相关的SQL(订单编号、创建时间、总金额、收货人、收货人地址、收货人城市、州或省(简称)、收货邮编、收货人电话、付款人邮箱)
  20. 使用腾讯云搭建一个专属自己的网络笔记本(Leanote)

热门文章

  1. 【一天一个C++小知识】012.C++11常用新特性汇总
  2. CNN卷积神经网络之卷积运算的初步理解
  3. Hadoop学习笔记(五):MapReduce的类型与格式
  4. 视频|光学3D测量技术原理及应用
  5. Listener中应用spring管理的Bean
  6. IOS开发之Post 方式获取服务器数据
  7. 为 DEV-C++ 生成 libmysql.a 的过程 及 windows下 devc++ c语言访问mysql数据库 环境配置...
  8. OpenCV获取图像的高和宽(Iplimage)
  9. 速读-NFA的GPU加速器
  10. Python使用matplotlib画动态图