Extjs单独定义各组件的实例代码


Posted in Javascript onJune 25, 2013

网上看到的一个事例,其中包含了组件的定义拷贝下来供大家参考:

Ext.onReady(function(){ 
var dtCategory=[ 
['all','所有种类'], 
['1','Beverages'], 
['2','Condiments'], 
['3','Confections'], 
['4','Dairy Products'], 
['5','Grains/Cereals'], 
['6','Meat/Poultry '], 
['7','Produce'], 
['8','Seafood'] 
]; 
var stCategory=new Ext.data.SimpleStore({ 
fields:['value','text'], 
data:dtCategory 
}); 
var cbCategory=new Ext.form.ComboBox({ 
id:"cbCategory", 
store:stCategory, 
displayField:"text", 
valueField:"value", 
typeAhead:true, 
mode:"local", 
triggerAction:"all", 
emptyText:"请选择商品种类...", 
editable:false, 
allowBlank:false, 
blankText:"商品种类必须选择", 
autoSelect:true, 
selectOnFoucus:true, 
value:'', 
dfval:'' 
}); 
cbCategory.setValue("all"); 
var tfName=new Ext.form.TextField({ 
id:'tfName' 
}); 
var btnSearch=new Ext.Button({ 
id:'btnSearch', 
iconCls:'btn_search', 
text:'搜索', 
handler:function(){ 
stProduct.load({params:{start:0,limit:10,categoryName:Ext.getCmp("cbCategory").getValue(),productName:Ext.getCmp("tfName").getValue()}}); 
} 
}); 
var btnHelp=new Ext.Button({ 
text:'帮助', 
iconCls:'btn_help' 
}) 
var tb=new Ext.Toolbar({ 
id:'tb', 
items:[ 
'商品种类:', 
cbCategory, 
'-', 
'商品名称:', 
tfName, 
btnSearch, 
'->', 
btnHelp 
] 
}); 
var pnNorth=new Ext.Panel({ 
id:'pnNorth', 
region:'north', 
autoHeight:true, 
items:[ 
tb 
] 
}); 
var url="Default.aspx"; 
var stProduct=new Ext.data.Store({ 
id:"st", 
proxy:new Ext.data.HttpProxy({url:url}), 
reader:new Ext.data.JsonReader({totalProperty:"totalProperty",root:"root",fields:[{name:"ProductID"},{name:"ProductName"},{name:"CategoryName"},{name:'UnitPrice'},{name:'Discontinued'},{name:'QuantityPerUnit'},{name:'CompanyName'}] })//ProductID作为隐藏列,不显示在gridpanel中 
}); 
stProduct.load({params:{start:0,limit:10,categoryName:Ext.getCmp("cbCategory").getValue(),productName:Ext.getCmp("tfName").getValue()}}); 
var cmProduct=new Ext.grid.ColumnModel([ 
new Ext.grid.RowNumberer(), 
{header:"产品名称",dataIndex:"ProductName",sortable:true}, 
{header:"产品种类",dataIndex:"CategoryName",sortable:true}, 
{header:"单价",dataIndex:"UnitPrice",sortable:true}, 
{header:"是否停产",dataIndex:"Discontinued",sortable:true}, 
{header:"规格",dataIndex:"QuantityPerUnit",sortable:true}, 
{header:"供货商",dataIndex:"CompanyName",sortable:true} 
]); 
var pgtbProduct=new Ext.PagingToolbar({ 
id:"pgtbProduct", 
displayInfo:true, 
emptyMsg:"没有数据要显示!", 
displayMsg:"当前为第{0}--{1}条,共{2}条数据", 
store:stProduct, 
pageSize:10 
}); 
var grdProduct=new Ext.grid.GridPanel({ 
id:"grdProduct", 
title:"商品信息", 
cm:cmProduct, 
store:stProduct, 
autoWidth:true, 
selModel:new Ext.grid.RowSelectionModel({single:true}), 
height: screen.availHeight-190, 
frame: true, 
pageSize:20, 
bbar:pgtbProduct, 
//autoExpandColumn:6, 
loadMask:true, 
viewConfig:{ 
forceFit:true 
} 
}); 
var stSupplier = new Ext.data.Store({ 
id: "stSupplier", 
autoLoad:true, 
proxy: new Ext.data.HttpProxy({ url: "ProductInfo.aspx?type=getSupplierInfo" }), 
reader: new Ext.data.JsonReader({ totalProperty: "totalProperty", root: "root", fields: [{ name: "sID" }, { name: "cName"}] }) 
}); 
var pnProduct=new Ext.Panel({ 
id:'pnProduct', 
title:'商品信息', 
autoHeight:true, 
items:[ 
new Ext.Panel({ 
id:'pnProductRowOne', 
border:false, 
bodyStyle:'padding-top:10px;', 
layout:'column', 
items:[ 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'textfield', 
id:'ProductName', 
name:'ProductName', 
fieldLabel:'商品名称', 
anchor:'95%' 
} 
] 
}), 
new Ext.Panel({ 
columnWidth:.25, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'radio', 
id:'DiscontinuedOneID', 
//hiddenName:'Discontinued', 
name:'Discontinued', 
inputValue:'1', 
fieldLabel:'是否停售', 
boxLabel:'是', 
anchor:'95%' 
} 
] 
}), 
new Ext.Panel({ 
columnWidth:.25, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'radio', 
id:'DiscontinuedTwoID', 
//hiddenName:'Discontinued', 
name:'Discontinued', 
checked:true, 
inputValue:'0', 
boxLabel:'否', 
anchor:'95%' 
} 
] 
}) 
] 
}), 
new Ext.Panel({ 
id:'pnProductRowTwo', 
border:false, 
layout:'column', 
items:[ 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'textfield', 
id:'QuantityPerUnit', 
name:'QuantityPerUnit', 
fieldLabel:'规格', 
anchor:'95%' 
} 
] 
}), 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'textfield', 
id:'UnitPrice', 
name:'UnitPrice', 
fieldLabel:'单价', 
anchor:'95%' 
} 
] 
}) 
] 
}), 
new Ext.Panel({ 
id:'pnProductRowThree', 
border:false, 
layout:'column', 
items:[ 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'textfield', 
id:'UnitsInStock', 
name:'UnitsInStock', 
fieldLabel:'库存量', 
anchor:'95%' 
} 
] 
}) 
, 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'combo', 
id:'CommpanyName', 
//name:'CommpanyName', 
hiddenName:'SupplierID', 
fieldLabel:'供货商', 
displayField: 'cName', 
valueField: 'sID', 
mode: 'local', 
typeAhead: true, 
triggerAction: "all", 
editable: false, 
allowBlank: false, 
autoSelect: true, 
selectOnFoucus: true, 
store: stSupplier, 
anchor:'95%' 
} 
] 
}) 
] 
}) 
] 
}); 
var pnCategory=new Ext.Panel({ 
id:'pnCategory', 
title:'商品相关种类信息', 
autoHeight:true, 
items:[ 
new Ext.Panel({ 
id:'pnCategoryRowOne', 
border:false, 
bodyStyle:'padding-top:10px;', 
layout:'column', 
items:[ 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'textfield', 
id:'CategoryName', 
name:'CategoryName', 
fieldLabel:'商品种类', 
anchor:'95%' 
}, 
{ 
xtype:'textfield', 
id:'Description', 
name:'Description', 
fieldLabel:'商品描述', 
anchor:'95%' 
}, 
{ 
xtype:'hidden', 
id:'CategoryID', 
name:'CategoryID', 
fieldLabel:'种类编号'//这个是隐藏的 
} 
] 
}), 
new Ext.Panel({ 
columnWidth:.5, 
border:false, 
bodyStyle:'padding-left:25px;', 
layout:'form', 
labelWidth:60, 
labelAlign:'right', 
items:[ 
{ 
xtype:'box',// 
id:'CategoryImage', 
width:172, 
height:120, 
autoEl:{ 
tag:'image', 
src:'tempFile/1.png' 
} 
} 
] 
}) 
] 
}) 
] 
}); 
var tpProduct=new Ext.TabPanel({//很多时候我们可能是一个表单放在不同的tab中,为了方便提交和加载数据可以在tabpanel最外层放一个formpanel,但是显示就有问题,这个时候可以通过设置tabpanel高度和deferredRender、layoutOnTabChange两个属性来调整 
id:'tpProduct', 
deferredRender:false,//是否第一次显示就渲染所有tab(默认为true) 
layoutOnTabChange:true, 
//height:300, 
//autoTabs:true, 
activeTab:0, 
border:false, 
items:[ 
pnProduct, 
pnCategory 
] 
}); 
var fpProduct=new Ext.FormPanel({//作为TabPanel的容器 
id:'fpProduct', 
reader: new Ext.data.JsonReader({ 
successProperty: 'success',//后台返回的json中成功与否的字段名称 
root: 'info'//后台返回的json中,数据字段名称 
}, 
[ 
'ProductName', 
//'Discontinued', 
'QuantityPerUnit', 
'UnitPrice', 
'UnitsInStock', 
'CategoryID', 
'CategoryName', 
'Description', 
'SupplierID' 
] 
), 
items:[ 
tpProduct 
] 
}); 
var winProductInfo=new Ext.Window({ 
title:'商品信息', 
width:450, 
height:300, 
layout:'fit', 
closeAction:'hide', 
plain:true,//true则主体背景透明,false则和主体背景有些差别 
collapsible:true,//是否可收缩 
modal:true,//是否为模式窗体 
items:[ 
fpProduct 
], 
buttons:[//窗体按钮 
{ 
text:'提交', 
handler:function(){ 
if(fpProduct.getForm().isValid()){ 
var record=grdProduct.getSelectionModel().getSelected(); 
fpProduct.getForm().submit({ 
method:'post', 
url:'ProductInfo.aspx?type=updateProductInfo&productId='+record.get("ProductID"), 
waitMsg:'数据更新中...', 
success:function(){ 
stProduct.reload(); 
Ext.Msg.alert("系统提示","提交成功!"); 
}, 
failure:function(){ 
Ext.Msg.alert("系统提示","提交失败!"); 
} 
}); 
} 
} 
}, 
{ 
text:'关闭', 
handler:function(){//点击时触发的事件 
winProductInfo.hide(); 
} 
} 
] 
}); 
// Ext.getCmp('tp').on("tabchange",function(tabPanel,tab){ 
// Ext.Msg.alert("系统提示","Tab标题:"+tab.title); 
// }); 
grdProduct.on("rowdblclick",function(grid,rowIndex,e){ 
var row=grid.getStore().getAt(rowIndex).data; 
//Ext.Msg.alert("系统提示","行:"+rowIndex+" 产品ID:"+row.ProductID); 
fpProduct.form.load({//利用load自动填充,注意表单控件字段一定要和json中一致 
url:'ProductInfo.aspx?type=getProductInfo&productId='+row.ProductID, 
waitMsg:'数据加载中...', 
success:function(){ 
//alert("tempFile/"+row.CategoryName+".png"); 
if(row.Discontinued=="是"){ 
Ext.getCmp('DiscontinuedOneID').setValue(true); 
}else{ 
Ext.getCmp('DiscontinuedTwoID').setValue(true); 
} 
Ext.getCmp('CategoryImage').getEl().dom.src="tempFile/"+row.CategoryName+".png"; 
}, 
failure:function(){ 
Ext.Msg.alert("系统提示","数据加载失败!"); 
} 
}); 
winProductInfo.show(); 
}); 
var pnCenter=new Ext.Panel({ 
id:'pnCenter', 
region:'center', 
items:[ 
grdProduct 
] 
}); 
var vp=new Ext.Viewport({ 
id:'vp', 
layout:'border', 
renderTo:Ext.getBody(), 
items:[ 
pnNorth, 
pnCenter 
] 
}); 
});
Javascript 相关文章推荐
理解Javascript_10_对象模型
Oct 16 Javascript
基于JQuery 滑动与动画的说明介绍
Apr 18 Javascript
js清除input中type等于file的值域(示例代码)
Dec 24 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
jquery实现的一个简单进度条效果实例
May 12 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
JavaScript实现前端实时搜索功能
Mar 26 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
JS实现带动画的回到顶部效果
Dec 28 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
原生JS实现的轮播图功能详解
Aug 06 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 #Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
Jun 25 #Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 #Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 #Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 #Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 #Javascript
js中复制行和删除行的操作实例
Jun 25 #Javascript
You might like
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
下拉框select的绑定示例
2014/09/04 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
原生js实现放大镜特效
2017/03/08 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
Quasar Input:type="number" 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
Python中的默认参数详解
2015/06/24 Python
Python进行数据提取的方法总结
2016/08/22 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
简单实现python聊天程序
2018/04/01 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python后端接收前端回传的文件方法
2019/01/02 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
《小儿垂钓》教学反思
2014/02/23 职场文书
项目建议书格式
2014/03/12 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
党校党性分析材料
2014/12/19 职场文书
大学生党员个人总结
2015/02/13 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
郭明义观后感
2015/06/08 职场文书
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL