Ext.require(['*']);
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [ 'name', 'email', 'phone' ]
});
var userStore = Ext.create('Ext.data.Store', {
model: 'User',
data: [
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244' },
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
]
});
Ext.onReady(function(){
Ext.create('Ext.grid.Panel',{
renderTo:Ext.getBody(),
//selType:'cellmodel',//ѡ��ij����Ԫ��
store:userStore,
width:400,
height:200,
title:'Application Users',
columns:[
{
text:'Name',
width:100,
sortable:false,
hideable:false,
dataIndex:'name'
},{
text:'Email Address',
width:150,
dataIndex:'email',
//format the email address using a custom renderer
renderer:function(value){
return Ext.String.format('<a href="mailto:{0}">{1}</a>',value,value);
},
hidden:false
},{
text:'Phone Number',
flex:1,
dataIndex:'phone'
}
]
});
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{ 'name': 'Lisa', "email":"lisa@simpsons.com", "phone":"555-111-1224" },
{ 'name': 'Bart', "email":"bart@simpsons.com", "phone":"555-222-1234" },
{ 'name': 'Homer', "email":"home@simpsons.com", "phone":"555-222-1244" },
{ 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{ header: 'Name', dataIndex: 'name',field:'textfield' },
{ header: 'Email', dataIndex: 'email', flex: 1 ,
/**�ɱ༭��Ԫ��*/
field:{
xtype:'textfield',
allowBlank:false
}},
{ header: 'Phone', dataIndex: 'phone' }
],
// selType:'cellmodel',//����ѡ�е�Ԫ��
selType:'rowmodel',
plugins:[
Ext.create('Ext.grid.plugin.RowEditing',{
clickToEdit:1
})
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
//Grouping
var store = Ext.create('Ext.data.Store', {
storeId:'employeeStore',
fields:['name', 'senority', 'department'],
groupField: 'department',
data: {'employees':[
{ "name": "Michael Scott", "senority": 7, "department": "Manangement" },
{ "name": "Dwight Schrute", "senority": 2, "department": "Sales" },
{ "name": "Jim Halpert", "senority": 3, "department": "Sales" },
{ "name": "Kevin Malone", "senority": 4, "department": "Accounting" },
{ "name": "Angela Martin", "senority": 5, "department": "Accounting" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'employees'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Employees',
store: Ext.data.StoreManager.lookup('employeeStore'),
columns: [
{ header: 'Name', dataIndex: 'name' },
{ header: 'Senority', dataIndex: 'senority' }
],
features: [{ftype:'grouping'}],
width: 200,
height: 275,
renderTo: Ext.getBody()
});
//paging
var itemsPerPage=2;
var userStorePage = Ext.create('Ext.data.Store', {
model: 'User',
autoLoad:true,
pageSize:itemsPerPage,
data: {
"success": true,
"total": 12,
'users':
[
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224'},
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234'},
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244'},
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254'},
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224'}
]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'users',
totalProperty:'total'
}
}
});
// specify segment of data you want to load using params
userStorePage.load({
params:{
start:0,
limit: itemsPerPage
}
});
/**�������userStorePage Ч��һ��
* var userStorePage = Ext.create('Ext.data.Store', {
model: 'User',
autoLoad: true,
pageSize: 4,
proxy: {
type: 'ajax',
url : 'MyData/users.json',
reader: {
type: 'json',
root: 'users',
totalProperty: 'total'
}
}
});
* */
Ext.create('Ext.grid.Panel',{
store:userStorePage,
columns:[
{
text:'Name',
width:100,
sortable:false,
hideable:false,
dataIndex:'name'
},{
text:'Email Address',
width:150,
dataIndex:'email',
//format the email address using a custom renderer
renderer:function(value){
return Ext.String.format('<a href="mailto:{0}">{1}</a>',value,value);
},
hidden:false
},{
text:'Phone Number',
flex:1,
dataIndex:'phone'
}
],
dockedItems:[{
xtype:'pagingtoolbar',
store:userStorePage,
dock:'bottom',
displayInfo:true
}],
renderTo: Ext.getBody()
});
//tree
Ext.create('Ext.tree.Panel',{
renderTo:Ext.getBody(),
title:'Simple Tree',
width:150,
root:{
text:'Root',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
},{
text:'child 3',
expanded:true,
children:[
{
text:'Grandchild',
leaf:true
}
]
}
]
}
});
var treeStore=Ext.create('Ext.data.TreeStore',{
root:{
text:'Root treeStore',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
},{
text:'child 3',
expanded:true,
children:[
{
text:'Grandchild',
leaf:true
}
]
}
]
}
});
Ext.create('Ext.tree.Panel',{
renderTo:Ext.getBody(),
title:'treeStore',
width:150,
store:treeStore,
useArrows:true//�Ӻš���> ��ͷ
});
//add nodes to the tree
var tree=Ext.create('Ext.tree.Panel', {renderTo:Ext.getBody(),useArrows:true});
tree.setRootNode({
text:'Root',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
}
]
});
var root=tree.getRootNode();
var parent=root.appendChild({text:'Parent 1'});
parent.appendChild({
text:'child 3',
leaf:true
});
var child = parent.insertChild(0, {
text: 'Child 2.5',
leaf: true
});
parent.insertBefore({
text: 'Child 2.75',
leaf: true
}, child.nextSibling);
parent.expand();
//异步加载tree
var asyRoot=new Ext.tree.AsyncTreeNode({
expanded:true,
text:'系统菜单',
id:'',//
draggable:false,
iconCls:'b'
});
var asyTree=new Ext.tree.TreePanel({
title:'树形结构',
root:asyRoot,
border:false,
autoHeight:true,
renderTo:Ext.getBody(),
autoScroll:true,
animate:true,//允许使用动画展开 折叠
enableDD:true,//允许拖放
containerScroll:true,//登记本容器ScrollManager
listeners:{//在加载之前监听一个事件
'beforeload':function(data){
node.loader=new Ext.tree.TreeLoader({
url:'viewtree.do?id='+node.id,//请求路径
baseParams:{//请求参数
}
});
}
}
});
});
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [ 'name', 'email', 'phone' ]
});
var userStore = Ext.create('Ext.data.Store', {
model: 'User',
data: [
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244' },
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
]
});
Ext.onReady(function(){
Ext.create('Ext.grid.Panel',{
renderTo:Ext.getBody(),
//selType:'cellmodel',//ѡ��ij����Ԫ��
store:userStore,
width:400,
height:200,
title:'Application Users',
columns:[
{
text:'Name',
width:100,
sortable:false,
hideable:false,
dataIndex:'name'
},{
text:'Email Address',
width:150,
dataIndex:'email',
//format the email address using a custom renderer
renderer:function(value){
return Ext.String.format('<a href="mailto:{0}">{1}</a>',value,value);
},
hidden:false
},{
text:'Phone Number',
flex:1,
dataIndex:'phone'
}
]
});
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{ 'name': 'Lisa', "email":"lisa@simpsons.com", "phone":"555-111-1224" },
{ 'name': 'Bart', "email":"bart@simpsons.com", "phone":"555-222-1234" },
{ 'name': 'Homer', "email":"home@simpsons.com", "phone":"555-222-1244" },
{ 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{ header: 'Name', dataIndex: 'name',field:'textfield' },
{ header: 'Email', dataIndex: 'email', flex: 1 ,
/**�ɱ༭��Ԫ��*/
field:{
xtype:'textfield',
allowBlank:false
}},
{ header: 'Phone', dataIndex: 'phone' }
],
// selType:'cellmodel',//����ѡ�е�Ԫ��
selType:'rowmodel',
plugins:[
Ext.create('Ext.grid.plugin.RowEditing',{
clickToEdit:1
})
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
//Grouping
var store = Ext.create('Ext.data.Store', {
storeId:'employeeStore',
fields:['name', 'senority', 'department'],
groupField: 'department',
data: {'employees':[
{ "name": "Michael Scott", "senority": 7, "department": "Manangement" },
{ "name": "Dwight Schrute", "senority": 2, "department": "Sales" },
{ "name": "Jim Halpert", "senority": 3, "department": "Sales" },
{ "name": "Kevin Malone", "senority": 4, "department": "Accounting" },
{ "name": "Angela Martin", "senority": 5, "department": "Accounting" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'employees'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Employees',
store: Ext.data.StoreManager.lookup('employeeStore'),
columns: [
{ header: 'Name', dataIndex: 'name' },
{ header: 'Senority', dataIndex: 'senority' }
],
features: [{ftype:'grouping'}],
width: 200,
height: 275,
renderTo: Ext.getBody()
});
//paging
var itemsPerPage=2;
var userStorePage = Ext.create('Ext.data.Store', {
model: 'User',
autoLoad:true,
pageSize:itemsPerPage,
data: {
"success": true,
"total": 12,
'users':
[
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224'},
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234'},
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244'},
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254'},
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224'}
]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'users',
totalProperty:'total'
}
}
});
// specify segment of data you want to load using params
userStorePage.load({
params:{
start:0,
limit: itemsPerPage
}
});
/**�������userStorePage Ч��һ��
* var userStorePage = Ext.create('Ext.data.Store', {
model: 'User',
autoLoad: true,
pageSize: 4,
proxy: {
type: 'ajax',
url : 'MyData/users.json',
reader: {
type: 'json',
root: 'users',
totalProperty: 'total'
}
}
});
* */
Ext.create('Ext.grid.Panel',{
store:userStorePage,
columns:[
{
text:'Name',
width:100,
sortable:false,
hideable:false,
dataIndex:'name'
},{
text:'Email Address',
width:150,
dataIndex:'email',
//format the email address using a custom renderer
renderer:function(value){
return Ext.String.format('<a href="mailto:{0}">{1}</a>',value,value);
},
hidden:false
},{
text:'Phone Number',
flex:1,
dataIndex:'phone'
}
],
dockedItems:[{
xtype:'pagingtoolbar',
store:userStorePage,
dock:'bottom',
displayInfo:true
}],
renderTo: Ext.getBody()
});
//tree
Ext.create('Ext.tree.Panel',{
renderTo:Ext.getBody(),
title:'Simple Tree',
width:150,
root:{
text:'Root',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
},{
text:'child 3',
expanded:true,
children:[
{
text:'Grandchild',
leaf:true
}
]
}
]
}
});
var treeStore=Ext.create('Ext.data.TreeStore',{
root:{
text:'Root treeStore',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
},{
text:'child 3',
expanded:true,
children:[
{
text:'Grandchild',
leaf:true
}
]
}
]
}
});
Ext.create('Ext.tree.Panel',{
renderTo:Ext.getBody(),
title:'treeStore',
width:150,
store:treeStore,
useArrows:true//�Ӻš���> ��ͷ
});
//add nodes to the tree
var tree=Ext.create('Ext.tree.Panel', {renderTo:Ext.getBody(),useArrows:true});
tree.setRootNode({
text:'Root',
expanded:true,
children:[
{
text:'child 1',
leaf:true
},{
text:'child 2',
leaf:true
}
]
});
var root=tree.getRootNode();
var parent=root.appendChild({text:'Parent 1'});
parent.appendChild({
text:'child 3',
leaf:true
});
var child = parent.insertChild(0, {
text: 'Child 2.5',
leaf: true
});
parent.insertBefore({
text: 'Child 2.75',
leaf: true
}, child.nextSibling);
parent.expand();
//异步加载tree
var asyRoot=new Ext.tree.AsyncTreeNode({
expanded:true,
text:'系统菜单',
id:'',//
draggable:false,
iconCls:'b'
});
var asyTree=new Ext.tree.TreePanel({
title:'树形结构',
root:asyRoot,
border:false,
autoHeight:true,
renderTo:Ext.getBody(),
autoScroll:true,
animate:true,//允许使用动画展开 折叠
enableDD:true,//允许拖放
containerScroll:true,//登记本容器ScrollManager
listeners:{//在加载之前监听一个事件
'beforeload':function(data){
node.loader=new Ext.tree.TreeLoader({
url:'viewtree.do?id='+node.id,//请求路径
baseParams:{//请求参数
}
});
}
}
});
});
发表评论
-
ExtJs tree
2014-04-16 14:00 0一:简单的树面板实例 Ext.onready(function ... -
Extjs tree 异步加载 实例
2014-04-16 13:33 978一:jsp 页面 <%@ page contentTy ... -
ExtJS insertHtml() overwrite() Format提供常用的格式化方法
2013-09-22 10:35 1224var insertPanel=new Ext.Panel({ ... -
ExtJs Ext.KeyNav 为元素提供简单的按键事件,多线程
2013-09-22 10:27 966KeyNav 按键事件 /** Ext.KeyNa ... -
ExtJS 遍历集合
2013-09-22 10:12 1125<script type="text/java ... -
ExtJS 表单验证
2013-06-17 15:48 1054使用特定类型的表单组件 使用regex正则表达式对输入内容进行 ... -
ExtJS 中Label、Fieldset字段集、FieldContainer 容器字段
2013-06-17 14:12 4720Ext.form.Label:可以与表单中的一个字段进行关联, ... -
ExtJS 微调控件ComnoBox和Time、Date的使用
2013-06-08 16:23 1077微调组件是一个具有上下控制按钮的输入组件,该组件一般不直接使用 ... -
工具栏ToolBar和菜单栏Menu入门
2013-06-04 17:09 2762一:Ext.toolbar.ToolBar是工具栏的基础组件, ... -
ExtJS 4.0 基本功能
2013-06-04 09:51 1355一:ExtJS 组件配置方式 ... -
ExtJS form表单提交
2013-05-30 15:40 949简单的Form 表单提交: 一:普通方式提交: <%@ ... -
ExtJS 入门—我的第一个ExtJS程序
2013-05-27 11:33 957详情请看:http://dev.sencha.com/depl ...
相关推荐
在本文中,我们将深入探讨如何使用ExtJS框架来实现自定义树结构以及动态表头的功能。ExtJS是一款强大的JavaScript库,常用于构建富客户端应用程序,它提供了丰富的UI组件和强大的数据绑定机制。VS2015是Visual ...
### ExtJS表格、树控件知识点详解 #### 表格控件 ##### 1.1 基本表格 `GridPanel` 在ExtJS框架中,`GridPanel` 是实现表格功能的核心组件,它继承自 `Panel` 类,具有丰富的功能如排序、缓存、拖拽列、隐藏列、...
这通常通过监听`checkchange`事件来实现,然后遍历树结构以同步其他节点的状态。 3. **后台数据读取**:后台数据通常由服务器端语言如ASP.NET(VS2008环境下可能使用的技术)处理,返回JSON或XML格式的数据。这些...
在EXTJS 4中,树形表格组件不仅支持基本的节点操作,如展开、折叠、拖放,还提供了丰富的数据绑定和筛选功能,是处理复杂数据结构的理想选择。 首先,让我们深入了解一下EXTJS 4树形表格组件的特性: 1. **层级...
在ExtJS中,树结构的数据可以通过`store`来管理,通常使用JSON格式的数据源。 2. **Ext.tree.Panel(树面板)**:这是显示树形数据的主要组件,包含了节点的渲染、交互逻辑等。可以设置`rootVisible`属性来控制是否...
1. **创建树结构**:在ExtJS中,树的数据源通常是一个JSON对象或Store,其中包含了节点的信息,如ID、文本、子节点等。例如: ```javascript var treeStore = Ext.create('Ext.data.TreeStore', { root: { ...
ExtJS表格Grid是一款强大的JavaScript组件,它在Web应用中用于展示和操作数据,尤其是在复杂的业务逻辑和大量数据处理中表现出色。这篇博客文章主要探讨了ExtJS Grid的全面功能,结合源码分析和实用工具,帮助开发者...
标题中的“EXTJS动态树支持checkbox全选”指的是EXTJS中树组件的一个特性,即在树形结构中添加复选框(checkbox)功能,并支持全选和全取消选中操作。这样的功能对于需要用户进行多项选择的场景非常有用,比如文件...
在本文中,我们将深入探讨如何使用ExtJS框架实现拖拽功能,特别是在树形视图(Tree)和表格视图(Grid)之间的交互。ExtJS是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括可拖拽的元素,这使得在Web...
这种特性使得树结构在不阻塞用户界面的情况下,能够逐步加载子节点,减少了初次加载时的数据量。 **ExtJS TreePanel** 在ExtJS中,动态树通常通过TreePanel来实现。TreePanel是一个可配置的组件,可以设置各种属性...
在`treedemo.rar`和`extjstree.rar`等文件中,可能包含了不同类型的树结构示例,如基本树、可编辑树、拖放树等。 2. **异步树(Asynchronous Tree)**: 异步树是一种优化加载大量数据的方法,它通过按需加载节点...
在ExtJS中,"分页树"是一种结合了树形数据结构和分页功能的组件,它允许用户以层级方式浏览大量数据,并通过分页来管理这些数据,提高用户体验。在"Extjs2分页树 带查询功能"这个主题中,我们将深入探讨如何在ExtJS ...
- **数据绑定**: 组件支持与数据存储进行绑定,可以动态加载和显示树结构。 - **交互操作**: 支持展开/折叠节点、选中节点等操作,并能够监听这些操作触发的事件。 - **样式定制**: 可以自定义组件的外观样式,如...
在实际开发过程中,我们还需要确保这个自定义的下拉树组件能够与其他ExtJs组件良好地协作,例如与表单、表格或其他UI元素的集成。同时,考虑到性能和用户体验,应当尽量优化数据加载和渲染过程,避免一次性加载大量...
在ExtJS中,树形组件(TreePanel)是一个常用的功能,用于展示层次结构的数据。当树形组件结合复选框时,可以实现用户对节点的选择操作,如全选、反选、子选父以及父选子。这些功能在数据管理、权限分配等场景中非常...
在ExtJS中,树形(Tree)组件是一种用于展示层级数据的强大工具,它允许用户以树状结构浏览和操作数据。然而,在处理大量数据时,一次性加载所有节点可能导致页面响应变慢,这时就需要引入分页功能。"Extjs树分页...
在ExtJS 5.0 版本中,TreePanel 是实现树形结构数据展示的重要组件,常用于构建如文件系统、组织架构或层级关系的菜单。下面我们将深入探讨如何利用ExtJS 5.0 创建一个树形菜单实例。 1. **TreePanel 基础** ...
EXTJS是一个强大的前端框架,提供了丰富的组件库,包括表格、表单、树、图表等多种元素,使得开发者能够创建出功能丰富且用户体验良好的Web应用。在EXTJS中,动态树的实现涉及到数据加载、节点操作、事件处理等多个...
在本篇《ExtJS4学习笔记十一:树控件的使用》中,我们将深入探讨ExtJS框架中的树形控件(TreePanel),这是一种强大的UI组件,用于展示层次结构的数据。ExtJS4对树控件的功能进行了增强,使其更加灵活且易于使用。...
如果数据库中的数据发生变化,你可以通过重新加载`Store`或更新单个记录来保持树结构的同步。 通过以上步骤,你可以实现ExtJs连接数据库并动态生成树形结构,以直观地展示层级关系数据。这在组织结构、文件系统、...