- 浏览: 216647 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 3033一、准备工作 1、下载adobe air install和ad ... -
带复选框(checkbox)的树
2009-03-20 15:05 1866该例子可以满足我们的一般需求。很多时候我们需要用到带check ... -
ExtJs中解决IE的min-width问题
2009-02-27 22:14 788当使用了ExtJs后,脚本documentElement.cl ... -
Ext中的动画处理
2009-02-27 22:13 1181CartoonExt.js //图片宽 var WIDTH=3 ... -
Ext.Ajax
2009-02-27 22:12 1197其实Ext.Ajax的使用并不 ... -
使用百分比设置GridPannel宽度的方法
2009-01-14 15:03 1659使用过Ext的Gird(网格)功 ... -
巧妙运用NumberField
2009-01-14 15:02 4588巧妙运用NumberField: 只允许字段输入数字. v ... -
Ext.ux.TabCloseMenu插件的使用
2009-01-14 14:59 1579tab在ext里很常用,在点开N个tab后,是否能通过右键菜单 ... -
直接在页面上显示富文本编辑器
2009-01-14 14:58 3290<html> <head> ... -
带右键菜单的树
2009-01-14 14:58 1206ext树形菜单加上右键菜单是不是很酷,ext当然也能实现。 树 ... -
EXT 二级联动下拉列表
2009-01-14 14:57 2581page.html代码如下 <!DOCTYPE HTM ... -
带搜索功能的grid分页实例
2009-01-09 13:43 1575本实例将在带分页的表格基础上进行扩展,增加搜索功能。由于本实例 ... -
带分页的表格
2009-01-09 13:43 1044主要介绍如何使用ext的表格控件实现ajax分页。 上一节讲了 ... -
树形下拉框
2009-01-09 13:43 2584<!DOCTYPE HTML PUBLIC " ... -
支持手写输入及联想功能的下拉框
2009-01-09 13:42 2899<!DOCTYPE HTML PUBLIC " ... -
让ext项目步入对象化编程
2009-01-09 13:39 840对于一些刚刚接触javascript的人来说大部分都在使用面向 ... -
ext异步加载树的子节点
2009-01-09 13:12 1980<script> Ext.o ... -
可拖拽的tree实际应用
2009-01-09 12:54 1820ext提供的树本身就有拖 ... -
可直接编辑节点的tree
2009-01-09 12:03 1709其实代码并不是很复杂,只是在原有的树形添加一个TreeEdit ... -
Checkbox与RadioGroup的使用方法
2009-01-09 12:03 7099Ext提供的Checkbox与Radio, ...
相关推荐
在开发用户界面时,`PropertyGrid`控件是一个非常实用的工具,它能够自动显示对象的公共属性、方法和事件,使得用户可以方便地查看和修改这些成员的值。本教程将深入探讨如何在`PropertyGrid`控件中自定义属性的显示...
ExtJS Grid是一个强大的数据展示组件,它在Web应用程序中用于显示和操作大量数据。...通过这个实例,开发者不仅可以学习到如何构建功能完善的表格,还能掌握如何根据业务需求定制Grid,提升Web应用的数据管理能力。
首先,创建了一个名为 `MyGridView` 的类,该类继承自 `Ext.grid.GridView`。然后,重写了 `renderHeaders` 方法,该方法负责生成 Grid 的表头 HTML 结构。 ```javascript MyGridView = Ext.extend(Ext.grid....
综上所述,`PropertyGrid`控件是.NET开发中一个非常实用的组件,通过各种属性和方法,我们可以构建出功能丰富的用户界面,方便用户交互和配置对象属性。在提供的"PropertyGrid三个例子"中,我们可以看到如何利用`...
ALV Grid 的继承结构是指 `CL_GUI_ALV_GRID` 类的继承关系,这是ALV Grid 控制器的核心类。 #### 四、ALV Grid 控制器的控制结构 ALV Grid 控制器涉及多种控制结构,其中最重要的是字段目录(Field Catalog)。字段...
通过继承`UITypeEditor`类并重写其方法,可以创建自己的编辑器,然后通过`EditorAttribute`将其关联到特定属性。 总之,`PropertyGrid`控件是一个强大的工具,能够帮助开发者快速构建配置或设置界面。通过理解和...
在.NET开发环境中,控件是构建用户界面的基本元素,它们为开发者提供了丰富的功能和便捷的操作方式。标题"IGrid25CRack"提到的是一种专为.NET平台设计的网格控件,据描述称,它在功能和性能上相比Visual Studio自带...
通过继承和扩展EXT JS的API,开发者可以构建功能强大的数据视图。 通过阅读"5_使用Grids显示数据.doc"文档,你可以更深入地了解EXT JS Grid的用法和实践,包括如何配置和使用上述功能,以及解决实际项目中的问题。...
这需要继承`Ext.grid.filter.Filter`类,并重写相关方法。 8. **本地过滤与服务器过滤**: 对于大数据量,你可能需要在服务器端进行过滤,这时你需要在`store`中配置`remoteFilter: true`,并将过滤条件发送到...
`CMFCPropertyGridCtrl`是MFC实现`PropertyGrid`功能的类。它继承自`CWnd`,并添加了对属性列表的操作和管理。通过`CMFCPropertyGridCtrl`,你可以创建一个包含多个属性的网格,并为每个属性指定名称、值和描述。你...
MFC封装了Windows API,提供了面向对象的接口,使得开发者能够更方便地使用Windows操作系统的服务。在这个主题中,我们关注的是MFC中的表格控件——Grid Control。 表格控件在用户界面设计中扮演着重要角色,它允许...
标题"**WPF可继承窗体**"指的是如何设计一个基本的WPF窗口,使其能够作为其他窗口的基础类,这样子类就可以继承其样式和功能。 WPF提供了一个强大的框架,允许开发者定义丰富的用户界面和交互体验。窗体(Window)...
- 创建一个新的JavaScript类,继承自Ext.grid.Panel或者Ext.grid.Viewport。 - 在类中定义配置属性,如store、columns、tools等,以满足各种场景需求。 - 实现加载数据、刷新、排序等功能的方法。 - 设计好公共...
GRID控件在WinForms中主要是通过`DataGridView`类来实现的。`DataGridView`是微软.NET Framework 2.0引入的一个新控件,它取代了旧版的`DataGrid`控件,提供更强大、更灵活的功能。这个控件能够方便地与各种数据源...
Grid控件则是CControl的子类,我们可以通过继承和扩展这些类来实现自定义功能。 为了创建一个Grid控件,我们需要做以下步骤: 1. **创建一个新的CActive派生类**:在S60平台上,大多数UI元素都是活动对象(CActive...
`Element`类不仅简化了DOM操作的复杂性,还提供了一套完整的API用于处理DOM节点。 **获取多个DOM的节点** 要获取DOM节点,可以使用`Ext.get()`方法。如果传入的ID对应多个元素,则会返回一个包含这些元素的数组。...
综上所述,Symbian Grid列表的应用涵盖了界面设计、事件处理、性能优化等多个方面,它是构建Symbian应用中不可或缺的一部分,为用户提供直观、高效的操作体验。通过熟练掌握Grid List的开发技巧,开发者可以创建出更...
1. **自定义布局算法**:通过继承GridLayoutGroup并重写其核心布局方法,如CalculateCellSize和ArrangeChildren,可以实现特定的网格布局规则。 2. **扩展属性**:增加自定义属性,如添加新的约束选项、单元格间的...
因此,不建议继承此类类来访问受保护的对象。这样做可能会增加后续升级的难度。 #### 目标 本文档的目标是提供一个简单明了的参考文档,帮助开发人员在编写使用 ALV Grid 控制构建列表的代码时更加高效。尽管关于...