EXTJS 4.2 资料 控件之Grid 那些事
最近在学习Extjs4.2 ,积累文章,看得不错,再此留年:
//表格数据最起码有列、数据、转换原始数据这3项
Ext.onReady(function(){
//定义列
var columns = [
{header:'编号',dataIndex:'id',width:}, //sortable:true 可设置是否为该列进行排序
{header:'名称',dataIndex:'name',width:},
{header:'描述',dataIndex:'descn',width:},
{header:'状态',dataIndex:'status',width:,renderer:function(value){
if(value=='可用'){
return "<span style='color:green;font-weight:bold';>可用</span><img src='images/right.gif' />";
} else {
return "<span style='color:red;font-weight:bold';>禁用</span><img src='images/wrong.gif' />";
}
}}
];
//定义数据
var data =[
['','小王','描述01','可用'],
['','李四','描述02','禁用'],
['','张三','描述03','可用'],
['','束洋洋','思考者日记网','可用'],
['','高飞','描述05','禁用']
];
//转换原始数据为EXT可以显示的数据
var store = new Ext.data.ArrayStore({
data:data,
fields:[
{name:'id'}, //mapping:0 这样的可以指定列显示的位置,0代表第1列,可以随意设置列显示的位置
{name:'name'},
{name:'descn'},
{name:'status'}
]
});
//加载数据
store.load();
//表格控件默认使用RowModel,按住shift或者ctrl键单击鼠标就可以选择多行,如果希望只选择一行,可以使用singleSelect:true
//我发现我在写的时候,不用的情况下,我试了发现默认就是不可多选的
//var sm = new Ext.grid.RowModel({singleSelect:true});
//创建表格
var grid = new Ext.grid.GridPanel({
renderTo:'grid', //渲染位置
width:,
height:,
//selModel:sm,
store:store, //转换后的数据
columns:columns, //显示列
stripeRows:true, //斑马线效果
//enableColumnMove: false, //禁止拖放列
//enableColumnResize: false, //禁止改变列宽度
loadMask:true, //显示遮罩和提示功能,即加载Loading……
//forceFit:true //自动填满表格
viewConfig:{
columnsText:'显示的列',
scrollOffset:, //表格右侧为滚动条预留的宽度,默认为20
sortAscText:'正序',
sortDescText:'倒序',
forceFit:true //表格会自动延展每列的长度,使内容填满整个表格
}
});
});
1.自定义grid的renderer 方法
a.function renderMotif
/改变列颜色自定义renderner方法
function renderMotif(data, cell, record, rowIndex, columnIndex, store){
var value = record.get('name');
cell.style="background-color:"+value;
return data;
}
列中引用:
{header:'名称',dataIndex:'name',width:, renderer:renderMotif},
b.function renderDescn
{header:'描述',dataIndex:'descn',width:,renderer:renderDescn}
//自定义renderner方法
function renderDescn(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;
}
说明:
我们可以在渲染函数里得到多个参数,如下所示:
- value:将要显示到单元格里的值;
- cellmeta:单元格的相关属性,主要有id和CSS;
- record:这行的数据对象,如果需要获取其他列的值,可以通过record.data["id"]的方式得到,这个属性很重要,我们经常会用到;
- rowIndex:行号,这里的行号指的是当前页中所有记录的顺序;
- columnIndex:当前列的列号;
- store:构造表格时传递的ds。表格里的所有数据都可以通过store获得。
3.自动显示行号和复选框都是renderer的延伸。先来说自动显示行号,在列模型columns中加入RowNumber对象即可,如下代码
new Ext.grid.RowNumberer(), //自动显示行号
4.获取选中行数据,有点奇怪不知道为什么,在EXTJS3.0和EXTJS4.0里面写法不一样,两者区别:
EXTJS4.0写法:
var selectedData = grid.getSelectionModel().getSelection()[].data;
alert(selectedData.Id);
EXTJS3.0写法:
var selectedData = grid.getSelectionModel().getSelection();
alert(selectedData[].Id);
EXTJS 4.2 资料 控件之Grid 那些事的更多相关文章
- EXTJS 4.2 资料 控件之Grid 行编辑绑定下拉框,并点一次触发一次事件
主要代码: { header: '属性值', dataIndex: 'PropertyValueName', width: 130, editor: new Ext.form.field.ComboB ...
- EXTJS 4.2 资料 控件之Grid 添加行,编辑行,删除行
//SiteVariableConfigValue类,创立一个模型类 Ext.define("SiteVariableConfigValue", { extend: "E ...
- EXTJS 4.2 资料 控件之Grid Columns 列renderer 绑定事件
columns: [ { header: '序号', xtype: 'rownumberer', align: 'center', width: 100 }, { header: 'CompanyId ...
- EXTJS 4.2 资料 控件之Grid 列鼠标悬停提示
columns: [ { header: }, { header: }, { header: , renderer: function (v, ctx, record) { ctx.tdAttr = ...
- EXTJS 3.0 资料 控件之 html 潜入label用法
这是在Extjs 中插入html 控件label! html: "<div><label id='howMany'>您共选中了</label><br ...
- EXTJS 3.0 资料 控件之 combo 用法
EXTJS combo 控件: 1.先定义store //年款 var comboData_ReleasYear = [ ['], ['], ['], ['] ]; 2.定义combo控件 { lay ...
- EXTJS 4.2 资料 控件之combo 联动
写两个数据源: 1.IM_ST_Module.js { success:true, data:[ { ModuleId: '1', ModuleName: '资讯' } , { ModuleId: ' ...
- EXTJS 4.2 资料 控件textfield中fieldLabel去掉冒号,控件label的长度
代码: labelSeparator: '', // 去掉laebl中的冒号 labelWidth: 10,//控件label的长度
- EXTJS 4.2 资料 控件之radiogroup 的用法
最近在EXTJS4.2开发项目,radiogroup的用法,主要是和grid之间的编辑功能:看了好多资料都不对,特此在这里备注记录 代码如下, 1.这是一段Win窗体上的两个单选按钮,设置单选按钮都是 ...
随机推荐
- hdu 4000 树状数组
思路:找出所有 a<b<c||a<c<b的情况,在找出所有的a<b<c的情况.他们相减剩下就是a<c<b的情况了. #include<iostre ...
- 移动平台的meta标签-----神奇的功效(转)
对于桌面平台web布局中大家对meta标签再熟悉不过了,它永远位于 head 元素内部,对做SEO的朋友一定对meta有种特殊的感情吧,今天我们就来说说移动平台的meta标签,在移动平台meta标签究 ...
- C#控制台程序 使用 Server.MapPath,
(1)添加引用 System.Web. (2)在类中填写 using System.Web 命名空间. (3)写法为: System.Web.HttpContext.Current.Server.Ma ...
- Acrobat 2015 win32破解版
Acrobat 2015 win32破解版,带破解补丁dll覆盖即可 百度云盘:http://pan.baidu.com/s/1i4tFnNJ
- H5-xhtml+css2-静态百度首页练习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MyBatis(3.2.3) - Integration with Spring
MyBatis-Spring is a submodule of the MyBatis framework, which provides seamless integration with the ...
- Linux 命令 - df: 报告磁盘空间的占用情况
df 命令列出指定的文件名所在的文件系统上可用磁盘空间的数量. 如果没有指定文件名,则显示当前所有使用中的文件系统.默认情况下,磁盘空间以 1K 为一块显示,如果设置了环境变量 POSIXLY_COR ...
- [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine
Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 Trac. ...
- ### 学习《C++ Primer》- 9
Part 9: 模板与泛型编程(第16章) // @author: gr // @date: 2016-03-18 // @email: forgerui@gmail.com 1. 模板参数 类型模板 ...
- iOS动画——弹窗动画(pop动画)
用pop动画简单实现弹窗的缩放和渐变,感觉这个动画常用,就写一下博客 pop动画是Facebook推出的动画引擎,请自行到GitHub上搜索下载拖拽导入xcode项目中. 更多pop动画使用和原理可网 ...