php extjs 实例,Extjs单独定义各组件的实例代码_extjs

  • Post author:
  • Post category:php


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

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

]

});

});

本文原创发布php中文网,转载请注明出处,感谢您的尊重!