ExtJS 表格 树结构

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:{//请求参数


}
});
}
}
});
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值