首页 > 分享 > 我的extjs学习之路2—信息展示和信息筛选的实现

我的extjs学习之路2—信息展示和信息筛选的实现

用了一个周的时间熟悉了几个比较常用到的组件,根据API提供的示例也写出了几个比较粗陋的UI,下面的时间就投入到了ExtJs的具体应用上来。

数据的查询部分

数据的查询无非是将查询出来的数据传到前台显示。稍微复杂一点就是通过部分的查询条件来将数据查出来,然后通过前台展示。那么如何实现ExtJs和后台之间的交互呢?

首先看下面的这一幅图:

                             

可以看到上图,这个一个大的Panel,Panel中包含两部分,上面的信息检索部分是一个formpanel,下面的信息显示部分是一个gridpanel,首先要加载的是全部的数据,然后可以通过部分条件的筛选来加载所检索的数据。这属于两个方面的内容。

首先看布局的实现:

定义上面的form:createForm,定义下面的grid:createGrid,然后分别将定义好的createForm和createGrid装入到大的Panel中来。代码表示如下:

Ext.define('com.xx.xx.xxx.customerInfo', {

extend: 'Ext.panel.Panel',

initComponent: function() {

varme = this;

varform = me.createForm();

vargrid = me.createGrid();

me.items= [ form, grid ];

me.callParent(arguments);

}

}

gridPanel部分:首先放入的是全部的数据信息,后来是通过信息检索得到的数据信息

createGrid : function() {

varme = this;

vargrid = Ext.create('Ext.grid.Panel', {

width: '100%',

border: false,

forceFit: true,

selModel: Ext.create('Ext.selection.CheckboxModel'),

store:me.createCustomerStore(),

tbar:[{

xtype:'button',

text:'修改客户信息',

handler:function(){

varmodels = grid.getSelectionModel().getSelection();

if(models.length==0){

Ext.Msg.alert('提示 :','请选择一条数据');

return;

}

if(models.length>1){

Ext.Msg.alert('提示 :','请选择一条数据');

return;

}

varwin = Ext.create('com.xxxx.xxxxx.usermessage.updateCustomerWin',{

myGrid:me

});

win.getComponent(0).getForm().loadRecord(models[0]);

win.show();

}

},{

xtype:'button',

text:'刷新',

handler:function(){

me.store.load();

}

}],

columns: [ {

text: 'id',

dataIndex: 'id',

hidden: true

},{

text: '客户名称',

dataIndex: 'customername'

},{

text: '所属公司',

dataIndex: 'company'

},{

text: '客户类型',

dataIndex: 'customertype',

renderer:function(value){

if(value){

return'VIP客户';

}else{

return'普通客户';

}

}

},{

text: '联系人',

dataIndex: 'contact'

}]

});

returngrid;

}

Formpanel部分

typeStore =Ext.create('Ext.data.ArrayStore', {

fields: [ 'abbr','value' ],

data: [ [ '普通用户',0 ],['VIP用户',1 ] ]

});

createForm : function() {

varme = this;

varformPanel = Ext.create('Ext.form.Panel', {

frame: true,

width: '100%',

bodyPadding: 5,

collapsible:true,

fieldDefaults: {

border: false,

labelAlign: 'right',

labelWidth: 90,

msgTarget: 'qtip'

},

items: [ {

layout: 'form',

frame: 'true',

border: false,

buttonAlign:'center',

buttons:[{

text: '查询',

width: 100,

align:'center',

handler: function(button) {

varcname = me.query('textfield[name=cname]')[0].getValue();

varctype = me.query('combobox[name=ctype]')[0].getValue();

varstore = Ext.create('Ext.data.Store', {

fields: [ 'customername','company', 'customertype','contact' ],

proxy: {

type: 'ajax',

url: './customer/getcustomerInfo.do',

extraParams: {

'cname': cname,

'ctype': ctype

},

reader: {

type: 'json',

root: 'sresult'

}

}

});

store.load({

scope : me,

callback: function(records,operation,success){

vargrid = me.query('grid')[0];

varoldStore = grid.getStore();

oldStore.removeAll();

oldStore.add(records);

grid.getView().refresh();

}

});

}

}],

defaults: {

anchor: '100%'

},

items: [ {

xtype: 'container',

border: false,

layout: 'hbox',

items: [ {

xtype: 'textfield',

border: false,

align:'center',

name: 'cname',

fieldLabel: '客户名称',

labelWidth: 300,

width: 600

},{

xtype: 'combobox',

name: 'ctype',

border: false,

align:'center',

fieldLabel: '客户类型',

labelWidth: 200,

width: 400,

store: typeStore,

displayField: 'abbr'

}]

} ]

}]

});

returnformPanel;

}

相关知识

sheet = workbook.active
哪些地方可以发布宠物救助、寻宠信息?
宠物管理系统的设计及实现.docx
毕设项目:宠物饲养信息交流平台的设计与实现(JSP+java+springmvc+mysql+MyBatis)
基于Django的宠物信息交流管理系统设计
「成都宠物摄影招聘信息」
「宠物医生学习招聘信息」
今天我开始学习:PETSHOP3.0宠物商店(经典案例)
《基于javaweb+mysql数据库实现的宠物领养网站》宠物管理
【宠物狗表演培训班信息 培训/价格信息】

网址: 我的extjs学习之路2—信息展示和信息筛选的实现 https://m.mcbbbk.com/newsview263098.html

所属分类:萌宠日常
上一篇: 泰达宠物狗怎么训练的啊?
下一篇: 盒子模型