Extjs renderer函数
昨天提到了改变grid中 行的背景颜色,其实还有一个更简单的方法,就是利用renderer:function(){}函数
renderer 函数是一个拦截者模式,用于改变渲染到单元格的值和样式。
renderer:function(value,cellmeta,record,rowIndex,columnIndex,store){ cellmeta.style=“background-color:XXXX"; return value; } 1.value是当前单位格的值 2.cellmeta里保存的是cellId单位格id,id是列号,css是这个单位格的css样式。 - 当前单元格的元数据集合,通过渲染器可以直接使用或者修改其部分属性值,常用的属性有:tdCls、tdAttr、style。 3.record是所在行数据,你想要什么,record.data["id"]就获得了。 4.rowIndex是行号,不是从头往下数的意思,而是分页后的成果。 5.columnIndex列号。 6.store,这个是你创建表格时辰传递的ds,也就是说表格里所有的数据,你都可以随便调用。 7.return : String The HTML string to be rendered. 返回一个被渲染的 HTML 文本串
不过测试的时候发现IE11颜色显示不出来。毕竟是与宇宙为敌的浏览器,就不去管了。
这个方法昨天的文章中也有提到过,对,就是这个
renderer:function (value, metaData, record, rowIdx, colIdx, store){ metaData.tdAttr = 'data-qtip="' + Ext.String.htmlEncode(value) + '"'; return value; }
用来把鼠标移到单元格上,弹出提示。这个方法对于某列数据不能完全显示出来时,就特别管用。