一个列表大致有如下之间的组件
Toolbar,GridPanel,PagingToolbar。
首先看工具栏
tbar: new Ext.Toolbar({
items : [
'市:', this.cityCombo, '-', '区县:', this.countyCombo, '-','局站:', this.officeCombo, '-',
'厂商:', this.factoryCombo,'-', 'OLT:', this.oltCombo, '-','过滤条件:', this.nameText,'-',
{text : '查询',iconCls : 'find', handler :this.doQuery,scope : this},'->','-',
{text : '按用户测试',iconCls : 'update', handler :this.userTest,scope : this},'-'
]
})
//this.cityCombo 这类代表下拉框 或者输入框之类的
然后有分页组件
bbar: new Ext.PagingToolbar({
pageSize : 30,
store : this.store,//数据源
firstText : '第一页',
nextText : '下一页',
prevText : '上一页',
refreshText : '刷新',
lastText : '最后一页',
beforePageText : '当前',
afterPageText : '页/共{0}页',
displayInfo : true,
displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
doLoad:function(C){ //为了点击下一页传递参数用
var B={};
A=this.paramNames;
B[A.start]=C;
B[A.limit]=this.pageSize;
B['cityId']=cityId;
B['countyId'] = countyId;
B['officeId'] = officeId;
B['oltId'] = oltId;
B['factoryId'] = factoryId ;
B['name'] = name ;
//B代表工具栏上面可选的查询条件
if(this.fireEvent("beforechange",this,B)!==false){
this.store.load({params: B});
}
},
emptyMsg : "没有记录"
}),
//表格列 可从Ext.grid.GridPanel中获取
cm: new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
{header : 'xxxx',dataIndex:'instanceId', align:'center',width:100, hidden : true},
{header : 'xxxx', dataIndex:'geoName', align:'center', width:100, sortable : true},
{header : 'xxxx',dataIndex:'subGeoName', align:'center', width:100, sortable : true},
{header : 'xxxxx', dataIndex: 'officeName', align:'center', width: 100, sortable : true},
{header : 'xxxxx', dataIndex: 'factoryName', align:'center', width:100, sortable : true},
{header : '设备名称', dataIndex: 'instanceName',align:'center', width:260,sortable : true},
{header : 'xxxxxx', dataIndex: 'ip', align:'center', width:160, sortable : true},
{header : 'xxxxx', dataIndex: 'devType',align:'center', width:100, sortable : true },
{header : 'xxxx',dataIndex: 'userCount', align:'center', width:110, sortable : true},
{header : 'xxxx',dataIndex: 'test', align:'center', width:110, sortable : true, renderer: this.testRender}
]),
//获取数据源以及读取数据
this.store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({url : 'getXXXXXXX.action', method : 'POST'}),
reader : new Ext.data.JsonReader(
{totalProperty:'total',root:'root'},
///JSON格式的数据
[{name : 'instanceId'}, {name : 'geoName'}, {name : 'subGeoName'},
{name : 'officeName'}, {name : 'factoryName'}, {name : 'instanceName'}, {name : 'ip'},
{name : 'devType'},{name : 'userCount'}]
)
});
//下拉框
this.cityCombo = new Ext.form.ComboBox({
width : 80,
editable : false,
valueField : "geoid",//获取对象的属性
displayField : "geoname",//获取对象的属性
mode : 'local',
selectAllOn:true,
triggerAction : 'all',
allowBlank : true,
emptyText : '请选择',
store: new Ext.data.Store({
//请求数据源
proxy : new Ext.data.HttpProxy({url : '../getXXXXXr.action',method : 'POST'}),
reader : new Ext.data.JsonReader({}, [
{name : 'geoid'}, {name : 'geoname'}
])
})
});