当前位置: 代码迷 >> Web前端 >> Ext 分页小结
  详细解决方案

Ext 分页小结

热度:378   发布时间:2012-11-10 10:48:50.0
Ext 分页总结


Ext.onReady(function(){

//var sm = new Ext.grid.CheckboxSelectionModel();

//加载表格数据
var store = new Ext.data.Store({

proxy: new Ext.data.HttpProxy({ 
url:'log!listLog',
method:'post'
}),
reader: new Ext.data.JsonReader({
root:'logPage.logs',
totalProperty:'logPage.totalProperty',

id:'id'
},
[
{name:'logId'},
{name:'logType'},
{name:'username'},
{name:'isAdmin'},
{name:'moduleName'},
{name:'url'},
{name:'actionName'},  
{name:'note'},
{name:'time'}
])
});


//表格列对象
var logColumn = new Ext.grid.ColumnModel([
//sm,
{ header:'编号',
dataIndex:'logId'
},
{
header:'日志类型',
dataIndex:'logType'
},
{
header:'操作人',
dataIndex:'username'
},
{
header:'用户组',
dataIndex:'isAdmin'
},
{
header:'模块名',
dataIndex:'moduleName'
},
{
header:'请求路径',
dataIndex:'url'
},
{
header:'操作',
dataIndex:'actionName'
},
{
header:'备注',
dataIndex:'note'
},
{
header:'时间',
dataIndex:'time'
}
]);
//表格对象
var grid = new Ext.grid.GridPanel({  
                el : 'showLogs',  
                width : 850,  
                height : 300,  
                title : '日志列表',  
                store : store,
                cm : logColumn,
                trackMouseOver : false,
                autoScroll : true,
                loadMask : {msg:'正在加载数据,请稍侯……'},  
                bbar : new Ext.PagingToolbar({  
                    pageSize : 25,  
                    store : store,
                    displayInfo : true,
                    displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
                    emptyMsg : '没有记录'
                })
            });
        
         grid.render();
        
        
         //部门下拉
         var departmentCombo = new Ext.form.ComboBox({
         id : 'departmentCombo',
xtype : 'combo',
hiddenName : 'departId',
width : 100,
readOnly : true,
//装载日志类型数据
store : new Ext.data.JsonStore({
url : "department!listAllDepartment",
method : "post",
fields : ['id','name'],
root : 'departments'
}),
valueField :'id',
    displayField :'name',
    typeAhead : true,
    mode : 'remote',
    triggerAction : 'all',
    selectOnFocus : true,
    allowBlank : true
         });
        
         var userStore = new Ext.data.JsonStore({
         url : "user!listUserByDepartment",
method : "post",
fields : ['id','username'],
root : 'users'
         });
        
         departmentCombo.on(
         'select',function(combo,record,index){
         userStore.load({
         params:{departmentId:record.data.id}
         });
         });
        
       
        var userCombo = new Ext.form.ComboBox({
         id : 'userCombo',
xtype : 'combo',
hiddenName : 'userId',
width : 100,
readOnly : true,
store : userStore,
valueField :'id',
    displayField :'username',
    typeAhead : true,
    mode : 'local',
    triggerAction : 'all',
    selectOnFocus : true,
    allowBlank : true
         });
        
         //第一行搜索栏
var searchToolbar1 = new Ext.Toolbar({
id : 'searchToolbar1',
width : 850,
defaultType : 'textfield',
autoHight : true,
items : [
'部门:',departmentCombo,
'用户名:',userCombo,
'日志类型:',
{
id : 'logType',
xtype : 'combo',
hiddenName : 'typeId',
width : 100,
readOnly : true,
emptyText : '请选择...',
//装载日志类型数据
store : new Ext.data.JsonStore({
url : "log!listLogType",
method : "post",
fields : ['logTypeId','typeCode','typeName'],
root : 'logTypes'
}),
valueField : 'logTypeId',
    displayField : 'typeName',
    typeAhead : true,
    mode: 'remote',
    triggerAction : 'all',
    selectOnFocus : true,
    allowBlank : true
},
'模块',
{
fieldLabel:'模块',
name:'module',
xtype:'textfield',
width:100
},
'操作',
{
id:'actionComob',
xtype:'combo',
hiddenName:'actionId',
width:100,
readOnly : true,
emptyText:'请选择...',
//装载日志类型数据
store:new Ext.data.JsonStore({
url:"log!listActions",
method:"post",
fields:['id','code','name'],
root:'logUserActions'
}),
valueField:'id',
    displayField:'name',
    typeAhead: true,
    mode: 'remote',
    triggerAction: 'all',
    selectOnFocus:true,
    allowBlank:true
}
]
});

var searchBtn = new Ext.Button({
text: '查询',
handler:onclickSearchLogBtn
});

var resetBtn = new Ext.Button({
text : '重置条件',
handler:onclickResetBtn
});

var isAdminCombo = new Ext.form.ComboBox({
id:'isAdmin',
xtype:'combo',
hiddenName:'adminId',
readOnly : true,
width:100,
store:new Ext.data.SimpleStore({
fields: ['id', 'text'],
       data : [['1','是'],['2','否']]
}),
valueField:'id',
    displayField:'text',
    typeAhead: true,
    mode: 'local',
    triggerAction: 'all',
    selectOnFocus:true,
    allowBlank:true
})
//切换是否为管理员时绑定监听
isAdminCombo.on('select',function(combo,record,index){
var userCombo = Ext.getCmp('userCombo');
if(record.data.id == 1){
//userCombo.clear();
userStore.load({
         params:{departmentId:record.data.id,isAdmin:1}
         });
         var departCombo = Ext.getCmp('departmentCombo');
         departCombo.setValue('');
         departCombo.disabled = true;
}else{
var departCombo = Ext.getCmp('departmentCombo');
userStore.removeAll();
departCombo.disabled = false;
}
})

//
var searchToolbar2 = new Ext.Toolbar({
id : 'searchToolbar2',
width:850,
defaultType: 'textfield',
autoHight:true,
items:[
'是否为管理员:',isAdminCombo,
'起始日期:',
{
xtype: 'datefield',
name:'beginDate',
width:100,
format:'Y-m-d'
},
'终止日期:',
{
xtype: 'datefield',
name:'endDate',
width:100,
format:'Y-m-d'
},
searchBtn,

resetBtn
]
});

var searchPanel = new Ext.Panel({
renderTo : 'search-pl',
border:false,
tbar : searchToolbar1,
listeners : {
'render': function(){
searchToolbar2.render(this.tbar);
}
}
});

function onclickSearchLogBtn(){
store.reload(
{params:{start:0,limit:25}}
);
}

function buildParams(){
var username = Ext.fly('userCombo').dom.value;
var logType = Ext.fly('typeId').dom.value;
var module = Ext.fly('module').dom.value;
var action = Ext.fly('actionId').dom.value;
var isAdmin = Ext.fly('adminId').dom.value;
var beginDate = Ext.fly('beginDate').dom.value;
var endDate = Ext.fly('endDate').dom.value;
var departmentId = Ext.fly('departId').dom.value;

var vparams = {
params:{
'logQuery.module' : module,
'logQuery.departmentId' : departmentId,
'logQuery.username' : username,
'logQuery.logTypeId' : logType,
'logQuery.actionId' : action,
'logQuery.isAdmin' : isAdmin,
'logQuery.beginDate' : beginDate,
'logQuery.endDate' : endDate
}
};
return vparams;
}

//清空查询条件
function onclickResetBtn(){
Ext.getCmp('userCombo').setValue('');
Ext.getCmp('logType').setValue('');
Ext.getCmp('departmentCombo').setValue('');
Ext.getCmp('actionComob').setValue('');
Ext.getCmp('isAdmin').setValue('');

Ext.fly('typeId').dom.value = '';
Ext.fly('module').dom.value = '';
Ext.fly('actionId').dom.value = '';
Ext.fly('adminId').dom.value = '';
Ext.fly('beginDate').dom.value = '';
Ext.fly('endDate').dom.value = '';
}

store.on('beforeLoad',function(){
var username = Ext.fly('userCombo').dom.value;
var logType = Ext.fly('typeId').dom.value;
var module = Ext.fly('module').dom.value;
var action = Ext.fly('actionId').dom.value;
var isAdmin = Ext.fly('adminId').dom.value;
var beginDate = Ext.fly('beginDate').dom.value;
var endDate = Ext.fly('endDate').dom.value;
var departmentId = Ext.fly('departId').dom.value;

Ext.apply(store.baseParams,
{'logQuery.module' : module,
'logQuery.departmentId' : departmentId,
'logQuery.username' : username,
'logQuery.logTypeId' : logType,
'logQuery.actionId' : action,
'logQuery.isAdmin' : isAdmin,
'logQuery.beginDate' : beginDate,
'logQuery.endDate' : endDate}
);
})
store.load({params:{start:0,limit:25}});
})
  相关解决方案