完整源代码如下
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.onReady(function(){
// Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
// example of custom renderer function
function statusColor(val){
if(val == '在线'){
return '<span style="color:green;">' + val + '</span>';
}else if(val == '会议中'){
return '<span style="color:red;">' + val + '</span>';
}
return val;
}
// create the Data Store
var store = new Ext.data.Store({
// this page, an HttpProxy would be better
// proxy: new Ext.data.MemoryProxy(data),
// proxy: new Ext.data.HttpProxy({
// url: 'termSearch.action'
//// url:'../../temp/data.txt'
// }),
url:'termSearch.action',
storeId:'searchResult',
// create reader that reads the Topic records
reader: new Ext.data.JsonReader({
totalProperty: 'totalrows',
root: 'data',
// id: 'id',
fields: [
{name: 'id', type:'int'},
'consumer',
'area',
'termid',
'name',
'status',
'udate'
// {name: 'udate', mapping: 'udate', type: 'date', dateFormat: 'Y-m-d'}
]
})
// ,
// turn on remote sorting
// remoteSort: true
});
var sm = new Ext.grid.CheckboxSelectionModel();// 多选行
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
sm,
{header:'序号',width:40,dataIndex:'id'},
{header:'用户',width:50,dataIndex:'consumer'},
{header:'地域',width:50,dataIndex:'area'},
{header:'终端编号',dataIndex:'termid'},
{header:'终端名称',dataIndex:'name'},
{header:'终端状态',dataIndex:'status',renderer: statusColor},
{header:'更新日期',dataIndex:'udate'}
]);
// cm.defaultSortable = true;
// by default columns are sortable
cm.defaultSortable = true;
var grid = new Ext.grid.GridPanel({
store: store,
cm: cm,
stripeRows: true,
height:350,
width:800,
title:'',
tbar: new Ext.PagingToolbar({
pageSize: 10,
width:'98%',
store: store,
// paramNames:{rowStart: 'start', rowLimit: 'limit'},
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,共 {2} 条',
emptyMsg: "无记录"
})
});
// grid.render('div-grid');
// grid.getSelectionModel().selectFirstRow();
var consumerStore = getSelectStore("54");
var termTypeStore = getSelectStore("53");
var termStatusStore = getSelectStore("51");
// new Ext.data.SimpleStore({
// fields: ['text'],
// data : [['0','0'],['5','5'],['10','10'],['15','15'],['20','20']],
// fields:[{name: 'value', mapping: 0},{name:'text',mapping:1}],
// autoLoad:true
// })
var table = new Ext.Panel({
layout:'table',
defaults: {
bodyStyle:'padding:1px'
},
layoutConfig: {
columns: 4
},
items: [{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '终端编号',
name: 'termId',
id:'termId',
anchor:'95%'
}]
},{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '终端名称',
name: 'termName',
id:'termName',
anchor:'95%'
}]
},{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '刷新延时',
name: 'timeLapse',
id:'timeLapse',
anchor:'95%',
xtype:'combo',
store: new Ext.data.Store({
proxy: new Ext.data.MemoryProxy([['0','0'],['5','5'],['10','10'],['15','15'],['20','20']]),
reader: new Ext.data.ArrayReader({}, [
{name: 'value',mapping: 0, type: 'int'},
{name: 'text',mapping: 1}
]),
autoLoad:true
}) ,
displayField:'text',
valueField:'value',
hiddenName:'timeLapseValue',
typeAhead: true,
triggerAction: 'all',
forceSelection:true
}],
colspan:2
},{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '用户',
name: 'consumerId',
anchor:'95%',
id: 'consId',
xtype:'combo',
anchor:'95%',
store: consumerStore,
displayField:'text',
valueField:'value',
hiddenName:'consumerId',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
forceSelection : true,
emptyText:'Select a user',
allowBlank: false,
selectOnFocus:true,
forceSelection:true,
listeners:{
select:{
fn:function(combo,record,index) {
// Ext.Msg.alert('','xxxxxxx');
var store = getSelectStore("55",record.get('value'));
// Ext.Msg.alert(''+store.getCount(),'xxxxxxxxx='+store.getTotalCount());
Ext.getCmp('areaId').clearValue();
Ext.getCmp('areaId').store = store;
if(Ext.getCmp('areaId').view){
Ext.getCmp('areaId').view.setStore(store);
// Ext.getCmp('areaId').view.refresh();
}
Ext.getCmp('areaId').enable();
}
}
}
}]
},{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '地域',
name: 'consumerArea',
id:'areaId',
anchor:'95%',
xtype:'combo',
store: new Ext.data.Store(),
displayField:'text',
valueField:'value',
hiddenName:'consumerAreaId',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
forceSelection : true,
emptyText:'Select a area',
allowBlank: false,
selectOnFocus:true,
forceSelection:true,
disabled:true
}]
},{
width:165,
layout: 'form',
labelWidth:55,
items: [{
xtype:'textfield',
fieldLabel: '终端状态',
name: 'termStatus',
id:'termStatus',
anchor:'95%',
xtype:'combo',
store: termStatusStore,
displayField:'text',
valueField:'value',
hiddenName:'termStatusId',
typeAhead: true,
triggerAction: 'all',
forceSelection:true,
editable:false,
mode: 'local'
}]
},
// {
// width:165,
// layout: 'form',
// labelWidth:55,
// items: [{
// xtype:'textfield',
// fieldLabel: '终端类型',
// name: 'termType',
// id:'termType',
// anchor:'95%',
// xtype:'combo',
// store: termTypeStore,
// displayField:'text',
// valueField:'value',
// hiddenName:'termTypeId',
// typeAhead: true,
// triggerAction: 'all',
// forceSelection:true,
// editable:false,
// mode: 'local'
// }]
//
// },
{
layout: 'form',
labelWidth:55,
items: [{
name: 'Save',
id: 'Save',
text: '查询',
xtype:'button'
}]
}]
});
// table.render('div-grid');
var fp = new Ext.FormPanel({
// labelAlign: 'top',
frame:true,
title: '.',
bodyStyle:'padding:5px 5px 0',
width: 800
});
fp.add(table);
fp.add(grid);
fp.render("div-form");
//增加基本参数
store.on('beforeload', function(store) {
var para = {termId:'',termName:'',consumerId:'',areaId:'',termTypeId:'',tstatus:''};
para.termId = Ext.get('termId').getValue();
para.termName = Ext.get('termName').getValue();
para.consumerId = Ext.get('consumerId').getValue();
para.areaId = Ext.get('consumerAreaId').getValue();
para.tstatus = Ext.get('termStatusId').getValue();
Ext.apply(store.baseParams,para);
});
store.load({params:{start:0, limit:10}});
Ext.get("Save").on('click', function(){
store.load({params:{start:0, limit:10}});
});
});
function getSelectStore(selectId,pid){
if(!pid) pid = '';
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
method: 'GET',
url: '../webapp-cfg/getSelectOption.action?selectId='+selectId+'&pvalue='+pid+'&random='+Math.random()
}),
reader: new Ext.data.ArrayReader(
{id: "value"},
[
{name: 'value', mapping: 'value'},
{name: 'text',mapping:'text'}
]),
autoLoad:true
});
store.load();
store.on('load', function( s, records, options ) {
var rs = new Array(1);
var all = new Ext.data.Record([{name: 'value', mapping: 'value'},
{name: 'text',mapping:'text'}]);
all.set('value','');
all.set('text','全部');
rs[0] = all;
s.insert(0,rs);
});
分享到:
相关推荐
### ExtJS 表格布局小例子详解 #### 一、简介 本文档旨在解析一个具体的 ExtJS 表格布局小例子,重点介绍其中涉及的数据存储、数据删除与添加的方法。ExtJS 是一款强大的 JavaScript 框架,用于构建交互式的前端...
本资源“Ext Panel拼揍表格模板.rar”显然包含了关于如何使用Ext Panel创建自定义表格模板的示例和代码。 Ext JS是一个流行的JavaScript库,用于开发富互联网应用程序(RIA)。它提供了一个强大的组件模型,其中...
在本资源中,我们关注的是"表格Ext js gird源代码",这涉及到Ext JS中的Grid Panel组件,它是展示和操作数据集的主要工具。 Grid Panel是Ext JS中的核心组件之一,用于显示结构化的数据,通常以表格的形式。它支持...
考虑到现代Web应用的跨设备需求,EXT JS Grid支持响应式布局,可以根据屏幕大小自动调整列宽和布局。 综上所述,EXT JS的双层表格功能提供了强大的数据展示能力,通过灵活的配置和丰富的API,可以满足各种复杂的...
在Ext JS这个强大的JavaScript框架中,布局管理是构建复杂用户界面的关键部分。本文将深入探讨“Ext table布局实例”以及“formpanel的table布局”,帮助开发者更好地理解和运用这两种布局方式。 首先,我们要理解...
在"Ext左树有表格 增删改查"这个主题中,我们主要关注的是ExtJS如何实现左侧树形结构与右侧表格的交互,以及在这样的布局中进行数据的增、删、改、查操作。 首先,ExtJS中的树形组件(TreePanel)可以用来展示层级...
### EXT 布局 Layout 资料详解 ...- **Table 布局**:用于表格布局,支持行列布局。 每种布局都有其特定的应用场景,选择合适的布局可以帮助开发者更好地组织界面元素,提高用户界面的友好性和可维护性。
- `layout`: 使用了`"form"`布局,这是Ext中专门为表单设计的布局方式。 - `labelWidth`: 统一设置了所有字段标签的宽度。 - `autoScroll`: 设置为`true`,当表单内容超出容器时自动显示滚动条。 #### 字段配置 ...
实现EXT4表格分页实例,首先需要创建一个EXT JS项目,使用Eclipse作为IDE。在Eclipse中,可以使用Sencha CMD工具来生成项目结构和基础代码。项目创建后,需要编写以下主要部分: 1. **数据模型(Model)**:定义...
5. **模板和布局**:内置的各种布局模板(如表格布局、绝对布局等)使用户可以轻松地组织和对齐元素,而无需深入了解EXT的布局机制。 6. **版本控制集成**:EXT Designer与版本控制系统如Git、SVN等集成,方便团队...
ExtJS2.0 提供了丰富的布局选项,覆盖了从简单的容器布局到复杂的表格布局等多种场景需求。理解并掌握这些布局的特点和使用方法,能够帮助开发者高效地构建用户界面。在实际开发过程中,根据具体需求选择合适的布局...
### Ext.Viewport布局详解 在前端开发领域,尤其是基于Ext JS框架进行应用设计时,`Ext.Viewport`布局是至关重要的概念。它提供了一个全面的、全屏的容器,用于组织和展示各种UI组件,如面板、表格、图表等。在给定...
1. **组件化**:EXT提供了大量的预构建组件,如表格、面板、窗口、菜单、按钮等,这些组件可以方便地组合起来创建复杂的用户界面。 2. **数据绑定**:EXT支持双向数据绑定,使得视图层和模型层之间的数据同步变得...
在探讨“Ext Grid表格的自动宽度及高度的实现”这一主题时,我们深入解析如何在Ext JS框架下,利用其强大的Grid组件自适应容器尺寸,实现表格宽度与高度的自动调整。这一技术对于构建响应式、用户友好的界面至关重要...
EXT的核心部分是它的组件系统,包括各种UI组件,如表格、面板、菜单、按钮、表单等,这些组件都具有高度可定制性。"ext-all.js"是EXT库的主要JavaScript文件,包含了EXT的所有功能,适合在生产环境中使用。这个文件...
同时,你将接触到GWT Ext的布局管理,学习各种布局模式如绝对布局、网格布局、表格布局等,以便更灵活地设计页面结构。 第三部分:实战应用与最佳实践 这一部分将通过实例展示gwtext和GWT Ext在实际项目中的应用。...
EXT的组件化思想是其核心,通过各种组件如表格(Grid)、面板(Panel)、窗口(Window)等,可以构建出复杂的UI结构。教程会详细讲解这些组件的属性、方法和事件,帮助初学者快速上手。 "EXT核心API"则深入介绍了...
EXT提供了丰富的组件库,包括数据管理、用户界面控件和布局管理,使得开发者能够创建功能强大且交互性强的Web应用。 在提供的资源中,我们可以看到一系列关于EXT的学习资料,涵盖了从入门到精通的各个阶段: 1. **...
EXT 提供了一种优雅的方式来展示和操作数据,尤其适用于创建交互式的Web应用程序,如Ajax驱动的数据表格。Ajax技术使得页面无需刷新就能获取和更新数据,提高了用户体验。 首先,让我们深入了解一下EXT Grid。EXT ...