- 浏览: 138667 次
- 性别:
- 来自: 北京
文章分类
最新评论
一,单元格渲染
单元格是最终显示的数据地方,它是根据列定义信息设置来显示的,主要通过renderer属性来渲染的,可以通过这个属性设置单元格的最终渲染效果。
var cm = new Ext.grid.ColumnModel([
{ header: '编号', dataIndex: 'id' },
{ header: '姓名', dataIndex: 'name' },
{ header: '性别', dataIndex: 'sex',
renderer: function(value) { --通过列的渲染函数来定义
if (value == 'male') {
return "<span style='color:red; font-weight:bold;'>" + value + "</span>";
} else {
return "<span style='color:green; font-weight:bold;'>" + value + "</span>";
}
}
},
{ header: '描述', dataIndex: 'descn' },
{ header: '日期', dataIndex: 'date', type: 'date', renderer: Ext.util.Format.dateRenderer('Y年m月d日') }
]);
你也可以把列渲染的函数定义在外面,然后指定给renderer函数。通过这里可以看到为单元格添加图片也就比较容易了,只需要指定相应的
图片标签就可以了,如:
function renderSex(value){
if(value == '男'){
return "<span style='color:red; font-weight:bold;'>男</span><img src='user_male.png' />";
} else {
return "<span style='color:red; font-weight:bold;'>女</span><img src='user_male.png' />";
}
}
其实表格在渲染的时候提供了很多参数,通过它我们可以获取很多有用的信息,下面就是逐一介绍这些参数:
value: 将要显示到单元格的值
cellmeta:单元格的相关属性,主要有id 和 css
record: 单元格所在行的数据对象,如果要获取其他列的数据值,可以通过:record.data["id"] 的方式得到.
rowIndex: 行号
columnIndex: 列号
store: 构造表格时传递的ds。也就是说,表格所有的数据都可以通过store获得。
如:
function(value, cellmeta, record, rowIndex, columnIndex, store) {
var str = "<input type='button' value='查看详细信息' onclick='alert(\"" +
"这个单元格的值是:" + value + "\\n" +
"这个单元格的配置是:{cellId:" + cellmeta.cellId + ",id:" + cellmeta.id + ",css:" + cellmeta.css + "}\\n" +
"这个单元格对应的行的record是:" + record + ", 一行的数据都在里边\\n" +
"这是第" + rowIndex + "行\\n" +
"这是第" + columnIndex + "列\\n" +
"这个表格对应的Ext.data.Store在这里: " + store + ",随便用吧." +
"\")'>";
return str; -- 注意一定要return这个值。
}
上面的方法把单元格渲染成了一个按钮,通过单击按钮,弹出单元格的信息, 注意最后一定要return 。
二、 给表格的行和列设置颜色
1, 给行设置颜色
本例主要通过指定每一列的颜色的方式,给表格行设置颜色。
<style type="text/css">
.white-row{ background-color: white; }
.red-row{ background-color: #F5C0C0 !important; }
.yellow-row{ background-color: #FBF8BF !important; }
.green-row{ background-color: #99CC99 !important; }
</style>
Ext.onReady(function() {
var PersonRecord = Ext.data.Record.create([ --创建一行记录
{ name: 'name', type: 'string' },
{ name: 'sex', type: 'int' },
{ name: 'color', type: 'string' }
]);
var data = [ --创建4行数据
['boy', 0, '#FBF8BF'],
['girl', 1, '#99CC99'],
['man', 0, '#F5C0C0'],
['woman', 1, '#FFFFFF']
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, PersonRecord) --解析数据
});
store.load();
var grid = new Ext.grid.GridPanel({
store: store,
columns: [ --指定列
{ header: 'name', dataIndex: 'name' },
{ header: 'sex', dataInex: 'sex' }
],
autoHeight: true,
renderTo: 'grid',
viewConfig: {
forceFit: true,
enableRowBody: true,
getRowClass: function(record, rowIndex, p, ds) { --主要通过这个函数来渲染行的颜色
var cls = 'white-row';
switch (record.data.color) {
case '#FBF8BF':
cls = 'yellow-row'
break;
case '#99CC99':
cls = 'green-row'
break;
case '#F5C0C0':
cls = 'red-row'
break;
}
return cls;
}
}
});
});
2.给列设置颜色
function renderMotif(data,cell,record,rowIndex,columnIndex,store){
var value = record.get('color');
cell.attr = "style=background-color:" +value; -- 给列的单元格添加style属性。
return data;
}
这中方式跟单元格渲染方式一样,都是通过renderer属性来设置。
到这里学习了2种方式获取单元格的值:
(1),record.data['id']
(2) record.get('id');
发表评论
-
javaScript实现的 数据库
2014-11-06 17:17 15761、LokiJS LokiJS一个基于J ... -
xss攻击
2013-12-27 11:54 590解决方案与建议: 严格过滤用户所能提交的任何数据,特别是能执 ... -
js技巧
2013-08-02 09:02 1722· 事件源对象 event.srcElement.tagNa ... -
jquery combox实现联动效果
2013-05-18 05:15 743需求方要求 所以就想法实现此效果 经过两个小时的看源码、修改、 ... -
jQuery easyui 1.2.5 window、dialog发送两边请求(转)
2013-05-04 12:02 968jQuery easyui 1.2.5 window、dial ... -
跨域问题
2013-05-01 10:04 812可以采用JQuery的getJSON、get方法以JSONP的 ... -
js的base64
2013-04-11 10:55 731var Base64 = { // private prop ... -
JavaScript实现URL编码
2012-07-10 16:46 949<script language="vbscr ... -
用户访问超时
2012-07-09 17:11 1905用户访问超时 解决两种情况下的用户访问超时。 a)普通ht ... -
jQuery 禁止右键
2012-07-03 14:38 1877用jquery实现你的网站不能右键,很简短的代码: $('b ... -
js技巧
2012-06-12 17:08 7731、jquey查找iframe父页面的标签 $('#id' ... -
jquery easyui -datagrid(悬浮,隐藏)(转)
2012-05-30 16:33 0对于jquery easyui 的datagrid引用碰到了几 ... -
GridView脚注行添加合计,并设置背景图片
2011-09-30 11:00 4125以前在做GridView ... -
ExtJS表格
2011-09-30 10:58 27491. 简单表格控件 (由类Ext.grid.GridPane ... -
ExtJS表格——行号、复选框、选择模型
2011-09-30 10:57 6225一、 设置行号 行号的设置主要问题在于删除某一行后需要重新 ... -
cookie
2011-09-26 10:02 1112/** * * 获取cookie的值 * @para ... -
js结构语句
2011-09-25 11:02 8541 if 条件语句(可嵌套) 2 if....else 条件 ... -
js循环语句
2011-09-25 10:56 17631 for循环结构语句(可以嵌套); 2 for-in 循环 ... -
使用with语句进行对象操作
2011-09-25 10:45 883在js语言中,with语句是一个内容很少的语句,在程序中多次使 ... -
Iframe
2011-09-23 21:14 8051、Iframe子页面调用父页面函数 window.pare ...
相关推荐
这篇博客“动态操作表格并进行列渲染(改进)”可能探讨了如何提高用户体验和数据处理效率的方法。我们将围绕这个主题,深入讨论相关知识点。 首先,动态操作表格意味着表格的内容可以根据用户的交互或者后台数据的...
这个组件可以处理大量的数据行和列,并且能够快速地更新视图,确保流畅的用户体验。 这个组件可能包含了以下关键特性: 1. 数据分页:为了优化性能,组件可能采用了分页策略,只在画布上绘制当前页面的数据,而不是...
element-ui动态渲染表格
然而,当表格数据较多时,滚动浏览可能会导致表头或列宽不易辨识,这时就需要实现“固定行和列”的功能。这个功能使得用户在滚动查看大量数据时,表头和左侧的列始终保持可见,提高用户的阅读体验。 要实现`table...
需求:使用前端框架layui生成表格,点击表格中一行数据中的按钮,获取到这行数据。 解决办法: 在render中增加字段: done: function (res, curr, count) { // $('.x-body').find('.layui-table-body').find(table...
本篇文章将深入探讨`JTable`如何操作单元格、行和列,以帮助你更好地理解和运用这一功能强大的组件。 ### 单元格操作 1. **创建和设置单元格值**:`JTable`中的每个单元格都由一个`DefaultTableModel`管理。你可以...
- **行渲染器**:对于整个行的颜色定制,可以通过覆盖`JTable`的`prepareRenderer`方法来实现。这种方式可以根据行的索引或者数据内容来决定行的样式。 综上所述,本文不仅介绍了JTable的基本使用方法,还探讨了...
例如,如果你试图改变列表中第五行的第四列背景色,你需要注意,一旦用户滚动列表,这个渲染器可能会被用来显示其他数据,因为它会被复用。因此,正确的做法是让渲染器根据所显示的数据动态地改变其自身状态。 内联...
在实际应用中,有时我们需要在用户滚动页面时保持某些列或行始终可见,这就是所谓的“冻结列和行”功能。这个功能可以帮助用户更好地浏览和理解数据,尤其是在处理大量数据或者需要对比不同列的时候。 GridView ...
配置表通常会列出不同类型的硬件组件,如处理器类型、内存容量、存储设备等,以及它们的组合方式,以满足不同渲染任务的性能需求。 2.1.1 配置表 配置表会详细列举出各个硬件组件的具体规格,例如采用何种CPU...
`getRowClass` 是一个函数,该函数根据传入的记录(`record`)和行索引(`rowIndex`)返回一个CSS类名,用于设置行的样式。具体来说: ```javascript getRowClass: function(record, rowIndex, p, ds) { switch ...
- "Frame Timing"面板会列出每帧的各个阶段,如Culling(剔除)、Rendering(渲染)和Post-processing(后期处理)等。观察这些阶段的耗时,找出性能瓶颈。 - 注意"Script Execution Overhead",这是CPU在执行脚本...
当数据行数过多时,滚动浏览可能会导致表头和部分关键列无法始终可见,影响用户阅读和理解数据。为了解决这个问题,我们可以实现“gridview冻结表头和列”的功能,确保表头和特定列在滚动时始终保持固定。 ...
1. **VxeTable**:VxeTable是一个基于Vue的高性能表格组件,它支持动态列、行操作、表头分组、合并单元格、树形数据、拖拽排序、多级表头、虚拟滚动等复杂功能。通过其灵活的API和自定义渲染函数,开发者可以轻松地...
本篇文章将详细介绍如何实现`el-table`的循环动态列渲染。 首先,ElementUI的`el-table`组件通常通过`<el-table-column>`标签来定义每一列的属性,如`prop`、`label`和`width`等。例如,以下是一个静态的表格列定义...
- **动态添加行和列**:在网页加载后,通过JavaScript动态地修改DOM(Document Object Model),即文档对象模型,以增加或删除表格的行和列。 ### 实现步骤详解 根据给定的部分内容,我们可以看到使用JavaScript来...
BootstrapTable是一款基于Bootstrap框架的前端数据表格插件,它提供了丰富的功能,如排序、过滤、分页、自定义列等。在使用过程中,有时我们可能会遇到一个特定的需求,即实现父子表的功能,也就是在一个表格中嵌套...
纯CSS渲染的html5冻结固定table表格首行首列示例,完美滚动不出现空白线条
在DataGrid中,我们可以通过设置`itemRenderer`属性来指定特定列使用我们的自定义渲染器。例如: ```xml 数据列" dataField="yourDataField" itemRenderer="utils.MyCustomLabelRenderer"/> ``` 这里的`utils....