- 浏览: 212212 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
henchong:
如果提示信息全是数字的话,是不会自动换行的,不知道这个该怎么解 ...
用ExtJs为表格单元格增加Tooltips浮动信息 -
李君寻:
自动换行,算是懂了
ColumnLayout的使用方法 -
icrwen:
楼主能解释下为啥要用air技术呢,是不是只用ext就可以了啊
extjs+air开发 -
wenniuwuren:
不能显示图片..
利用session实现一次性验证码 -
追风筝的孩子:
还是没有解决啊
com.ibatis.sqlmap.client.SqlMapException: There is no statement named 语句名 in thi
在以往建立grid的时都要建立很多的辅助类,比如store,column和record等等。尤其当一个页面里面有多个grid的时候,这样会有很多的冗余代码。使页面加载很忙。
因此自己找了相关的文件,写了一个grid的扩展类。使建立grid只需几行代码就可完成。
以下为扩展文件。其扩展类的名字为Ext.ux.grid.SimpleGrid。文件名字为:Ext.ux.grid.SimpleGrid.js
详细内容请查看代码。
// 重新扩展的grid组建
Ext.namespace("Ext.ux.grid");
Ext.ux.grid.SimpleGrid = Ext.extend(Ext.grid.GridPanel, {
// 表格结构
structure : '',
//reader类型如果当为json的时候那么url不能空,当为array的时候dataObject不能为空
readType:'json',
// 获取数据的URL
url : '',
// 关键字段
keyField : '',
//数据对象
dataObject:null,
//是否需要分组,默认为false,如果设置为true须再设置两个参数一个为myGroupField和myGroupTextTpl
needGroup:false,
//分组的字段名称
myGroupField:'',
//分组显示的模板,eg:{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})
myGroupTextTpl:'',
//列模式的选择模式,默认为rowselectModel,如果相设置成check模式,就设置为check
selectType:'',
// 默认排序字段
defaultSortField : '',
// 是否需要分页工具栏,默认为true
needPage : true,
frame : false,
//是否带展开按钮,默认为false
collapsible : false,
animCollapse : true,
loadMask : true,
viewConfig : {
forceFit : true
},
// private
initComponent : function() {
if (this.structure != '') {
this.initStructure();
}
Ext.ux.grid.SimpleGrid.superclass.initComponent.call(this);
},
// private
initEvents : function() {
Ext.ux.grid.SimpleGrid.superclass.initEvents.call(this);
/* this.getStore().load( {
params : {
start : 0,
limit : 30
}
});
*/if (this.loadMask) {
this.loadMask = new Ext.LoadMask(this.bwrap, Ext.apply( {
store : this.store
}, this.loadMask));
}
},
// private
initStructure : function() {
var oCM = new Array(); //列模式数组
var oRecord = new Array(); //容器对数组
// 构成grid的两个必须组件: column和record,根据structure将这两个组件创建出来
//判断表格的选择模式
if(this.selectType=='check'){
var sm = new Ext.grid.CheckboxSelectionModel();
oCM[oCM.length] = sm;//在列模式数组中添加checkbox模式按钮
this.selModel = sm;//并将selModel设置为check模式
}
var len = this.structure.length;//得到结构的长度
for (var i = 0;i < len; i++) {
var c = this.structure[i];
// 如果字段为hidden,则不生成filters和columnMode
if (c.hidden == undefined || !c.hidden) {
oCM[oCM.length] = {
header : c.header,
dataIndex : c.name,
width : c.width,
// 类型为数字则右对齐
align : c.type == 'numeric' ? 'right' : 'left',
// 结构的渲染函数
renderer : c.renderer
};
}
oRecord[oRecord.length] = {
name : c.name,
// 如果类型不是date型则全部为string型
type : c.type == 'date' ? 'date' : 'string'
};
}
// 生成columnModel
this.cm = new Ext.grid.ColumnModel(oCM);
//this.colModel = this.cm;
// 默认可排序
this.cm.defaultSortable = true;
// 生成表格数据容器
var record = Ext.data.Record.create(oRecord);
//判断读取类别,目前只实现了,jsonreader和arrayReader
var reader;
switch (this.readType){
case 'json':
reader = new Ext.data.JsonReader( {
totalProperty : "totalCount",
root : "result",
id : this.keyField //关键字段
}, record);
this.ds = new Ext.data.GroupingStore( {
proxy : new Ext.data.HttpProxy( {
url : this.url
}),
reader : reader,
sortInfo : {field : this.defaultSortField,direction : 'ASC' },
remoteSort : true ,
groupField:this.myGroupField
});
break;
case 'array':
reader = new Ext.data.ArrayReader({},record);
this.ds = new Ext.data.GroupingStore({
reader: reader,
data: this.dataObject,
sortInfo : {field : this.defaultSortField,direction : 'ASC' },
groupField:this.myGroupField
});
break;
default:
break;
}
//判断是否需要分组
if(this.needGroup){
this.view = new Ext.grid.GroupingView({
forceFit:true,
groupTextTpl:this.myGroupTextTpl
})
}
this.store = this.ds;
// 生成分页工具栏
/* if (this.needPage) {
var pagingToolbar = new Ext.PagingToolbar( {
displayInfo : true,
displayMsg : '当前记录数: {0} - {1} 总记录数: {2}',
emptyMsg : '没有符合条件的记录',
store : this.ds
});
pagingToolbar.pageSize = 30;
this.bbar = pagingToolbar;
this.bottomToolbar = this.bbar;
} */
// 将filter加入grid
// this.plugins = filters;
}
});
它的用法如下:
首先先引用写好的扩展文件。在页面中把ext核心文件加载后,再建在Ext.ux.grid.SimpleGrid.js文件。
例如:<script src = 'Ext.ux.grid.SimpleGrid.js'></script>
在页面中:
<html>
<head>
<!--引用所有的ext的核心文件 -->
....代码略
<!--引用Ext.ux.grid.SimpleGrid.js文件 -->
....代码略
</head>
<body>
<div id="emp3-grid"><div>
<script language="javascript">
//本例是一个数组grid
var myGridData = [//数据源
[1,'01','局长','局级干部……'],
[2,'02','处长','处级干部……'],
[3,'03','科长','科长干部……'],
[4,'04','科员','普通科员……'],
[5,'05','职员','普通职员……']
];
var gridStructure = [//grid的数据结构
{
name:"stat_id",
header:"岗位编号",
hidden:true
},{
name : 'stat_sn',
header : "岗位排序号",
width : 50
},{
name : 'stat_name',
header : "岗位名称",
width : 130
},{
name:"stat_desc",
header:"岗位描述",
width:130
}];
var myUxGrid = new Ext.ux.grid.SimpleGrid({//创建岗位的tab面板信息
id : 'dept-center-stat-grid',
// url : 'getBasicUnits.action',
readType:'array', //确定数据源类型的参数
selectType:'check',
dataObject:myGridData ,
defaultSortField : 'stat_sn',
// keyField : 'basicUnitNo',
structure: gridStructure,
width : 700,
//height : 600,
title : '岗位信息' ,
renderTo:'temp3-grid'
});
</script>
</body>
</html>
发表评论
-
extjs+air开发
2009-06-24 21:41 2992一、准备工作 1、下载adobe air install和ad ... -
带复选框(checkbox)的树
2009-03-20 15:05 1834该例子可以满足我们的一般需求。很多时候我们需要用到带check ... -
ExtJs中解决IE的min-width问题
2009-02-27 22:14 752当使用了ExtJs后,脚本documentElement.cl ... -
Ext中的动画处理
2009-02-27 22:13 1153CartoonExt.js //图片宽 var WIDTH=3 ... -
Ext.Ajax
2009-02-27 22:12 1164其实Ext.Ajax的使用并不 ... -
使用百分比设置GridPannel宽度的方法
2009-01-14 15:03 1614使用过Ext的Gird(网格)功 ... -
巧妙运用NumberField
2009-01-14 15:02 4559巧妙运用NumberField: 只允许字段输入数字. v ... -
Ext.ux.TabCloseMenu插件的使用
2009-01-14 14:59 1544tab在ext里很常用,在点开N个tab后,是否能通过右键菜单 ... -
直接在页面上显示富文本编辑器
2009-01-14 14:58 3251<html> <head> ... -
带右键菜单的树
2009-01-14 14:58 1177ext树形菜单加上右键菜单是不是很酷,ext当然也能实现。 树 ... -
EXT 二级联动下拉列表
2009-01-14 14:57 2554page.html代码如下 <!DOCTYPE HTM ... -
带搜索功能的grid分页实例
2009-01-09 13:43 1549本实例将在带分页的表格基础上进行扩展,增加搜索功能。由于本实例 ... -
带分页的表格
2009-01-09 13:43 1011主要介绍如何使用ext的表格控件实现ajax分页。 上一节讲了 ... -
树形下拉框
2009-01-09 13:43 2542<!DOCTYPE HTML PUBLIC " ... -
支持手写输入及联想功能的下拉框
2009-01-09 13:42 2854<!DOCTYPE HTML PUBLIC " ... -
让ext项目步入对象化编程
2009-01-09 13:39 808对于一些刚刚接触javascript的人来说大部分都在使用面向 ... -
ext异步加载树的子节点
2009-01-09 13:12 1944<script> Ext.o ... -
可拖拽的tree实际应用
2009-01-09 12:54 1780ext提供的树本身就有拖 ... -
可直接编辑节点的tree
2009-01-09 12:03 1681其实代码并不是很复杂,只是在原有的树形添加一个TreeEdit ... -
Checkbox与RadioGroup的使用方法
2009-01-09 12:03 7053Ext提供的Checkbox与Radio, ...
相关推荐
目录 EXT 中文手册 1 EXT简介 3 目錄 3 下载Ext 4 开始! 4 Element:Ext的核心 4 获取多个DOM的节点 5 响应事件 5 使用Widgets 7 ...开始使用Grid 51 ...Step 2: Ext结构的构建 96 Step 3: 创建Tab控制逻辑 97
Ext官方网站+中文教程 无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你。... 目 录 EXT 中文手册 1 EXT简介 3 目錄 3 下载Ext 4 ...Step 2: Ext结构的构建 96 Step 3: 创建Tab控制逻辑 97
58 练一练 60 动态添加菜单按钮到Toolbar 61 更方便的是 61 下一步是 62 模板(Templates)起步 62 第一步 您的HTML模板 62 第二步,将数据加入到模板中 62 下一步 63 学习利用模板...
58 练一练 60 动态添加菜单按钮到Toolbar 61 更方便的是 61 下一步是 62 模板(Templates)起步 62 第一步 您的HTML模板 62 第二步,将数据加入到模板中 62 下一步 63 学习利用模板...
-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 ...
-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 ...
WebBuilder是一款跨平台、数据库和浏览器的可视化Web应用开发平台。...修复IDE代码重构,ServerScript encode方法和grid在特定情况下无法调整列大小等bug。根据最新的web标准调整和升级前后台代码。