首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

extjs grid搜寻分页实例

2012-09-23 
extjs grid搜索分页实例script typetext/javascriptExt.onReady(function(){??? var ds new Ext.da

extjs grid搜索分页实例

<script type="text/javascript">
Ext.onReady(function(){
??? var ds = new Ext.data.Store({//这是数据源
??? ??? proxy : new Ext.data.HttpProxy({url:'index.php?model=user&action=list&'}),
??????? reader: new Ext.data.JsonReader({
??? ??? ??? root: 'topics',
??????????? totalProperty: 'totalCount',
??????????? id: 'user_id'
??? ??? ??? },[
??? ??? ??? 'user_id','username','real_name','telephone','station_status','headship'
????? ??? ])
??? });

??? var colModel = new Ext.grid.ColumnModel([//定义列
??? ??? ?{header:'ID',width:50,sortable:true,dataIndex:'user_id'},
??? ??? ?{id:'title',header:'用户名', width:100,sortable:true,dataIndex:'username'},
??? ??? ?{header:'真实姓名',width:100,sortable:true,dataIndex:'real_name'},
??? ??? ?{header:'电话',width:100,sortable:true,dataIndex:'telephone'},
??? ??? ?{header:'岗位状态',width:100,sortable:true,dataIndex:'station_status'},
??? ??? ?{header:'职务',width:100,sortable:true,dataIndex:'headship'}
??? ??? ]);
??? var tb = new Ext.Toolbar('north-div');//创建一个工具条
???
??? tb.add({
??? ??? text: '添加',
??????? handler: newUser
??? ??? },{
??????? text: '编辑',
??????? handler: editUser
??? ??? },{
??????? text: '删除',
??????? handler: delUser
??? });
??? ???
??? var grid = new Ext.grid.GridPanel({//列表
??? ??? ??? ??? border:false,
??? ??? ??? ??? region:'south',
??? ??? ??? ??? height:500,
??? ??? ??? ??? loadMask: true,
??? ??? ??? ??? el:'center',
??? ??? ??? ??? title:'条目列表',
??? ??? ??? ??? store: ds,
??? ??? ??? ??? cm: colModel,
??? ??? ??? ??? autoScroll: true,
??? ??? ??? ??? bbar: new Ext.PagingToolbar({
??? ??? ??? ??? ??? pageSize: 20,
??? ??? ??? ??? ??? store: ds,
??? ??? ??? ??? ??? displayInfo: true,
??? ??? ??? ??? ??? displayMsg: '第{0} 到 {1} 条数据 共{2}条',
??? ??? ??? ??? ??? emptyMsg: "没有数据"
??????? ??? ??? })
??????????? });
??? var top = new Ext.FormPanel({//这里是搜索表单
??????? buttonAlign:'right',
??? ??? labelWidth:70,
??? ??? region:'center',
??????? frame:true,
??????? title: '搜索',
??????? items: [{
??? ??????????? layout:'column',
??? ??????????? items:[{
??? ??????????????? columnWidth:.33,
??? ??????????????? layout: 'form',
??? ??????????????? items: [{
??? ??????????????????? xtype:'textfield',
??? ??????????????????? fieldLabel: '用户名',
??? ??????????????????? id: 'username',
??? ??? ??? ??? ??? ??? name: 'username',
??? ??????????????????? anchor:'90%'
??? ??????????????? }]
??? ??????????? },{
??? ??????????????? columnWidth:.33,
??? ??????????????? layout: 'form',
??? ??????????????? items: [{
??? ??????????????????? xtype:'textfield',
??? ??????????????????? fieldLabel: '姓名',
??? ??????????????????? name: 'real_name',
??? ??? ??? ??? ??? ??? id: 'real_name',
??? ??????????????????? anchor:'90%'
??? ??????????????? }]
??? ??????????? },{
??? ??????????????? columnWidth:.33,
??? ??????????????? layout: 'form',
??? ??????????????? items: [{
??? ??????????????????? xtype:'textfield',
??? ??????????????????? fieldLabel: 'Email',
??? ??????????????????? name: 'email',
??? ??? ??? ??? ??? ??? id: 'email',
??? ??????????????????? vtype:'email',
??? ??????????????????? anchor:'90%'
??? ??????????????? }]
??? ??????????? }]
??????? ??? }
??????? ],

??????? buttons: [{
??????????? text: '保存',
??? ??? ??? handler:function(){
??????????????????????????????? // 这里是关键,重新载入数据源,并把搜索表单值提交
??? ??? ??? ??? ds.load({params:{start:0, limit:20,
??? ??? ??? ??? ??? username:Ext.get('username').dom.value,
??? ??? ??? ??? ??? real_name:Ext.get('real_name').dom.value,
??? ??? ??? ??? ??? email:Ext.get('email').dom.value}});
??? ??? ??? }
??????? },{
??????? ??? text: '重置',
??? ??? ??? handler:function(){top.form.reset();}
??????? }]
??? });
??? var viewport = new Ext.Viewport({
??????? layout:'border',
??????? items:[{
??? ??? ??? ? border:false,
??? ??? ??? ? region:'north',
??? ??? ??? ? contentEl:'north-div',
??? ??? ??? ? tbar:tb,
??? ??? ??? ? height:26
??? ??? ??? },top,
??? ??? ??? grid
??? ??? ]}
??? );
??? ds.load({params:{start:0, limit:20}});
??????? // 这里很关键,如果不加,翻页后搜索条件就变没了,这里的意思是每次数据载入前先把搜索表单值加上去,这样就做到了翻页保留搜索条件了
??? ds.on('beforeload',function(){
??? ??? Ext.apply(
??? ??? this.baseParams,
??? ??? {
??? ??? ??? username:Ext.get('username').dom.value,
??? ??? ??? real_name:Ext.get('real_name').dom.value,
??? ??? ??? email:Ext.get('email').dom.value
??? ??? });
??? });
??? function newUser() {
??? ??? parent.newTab('400012','添加用户','index.php?model=user&action=add');
??? }
??? function editUser() {
??? ??? var s = grid.getSelectionModel().getSelections();
??? ??? if (s.length==0) {
??? ??? ??? Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');
??? ??? }
??? ??? for (i=0;i<s.length;i++) {
??? ??? ??? var id = s[i].id;
??? ??? ??? parent.newTab('400012'+id,'编辑用户','index.php?model=user&action=add&user_id='+id);
??? ??? }
??? }
??? function delUser() {
??? ??? var ids = getId(grid);
??? ??? if (ids) {
??? ??? ??? Ext.Msg.confirm('确认', '真的要删除吗?', function(btn){
??? ??? ??? ??? if (btn == 'yes'){
??? ??? ??? ??? ??? Ext.Ajax.request({
??? ??? ??? ??? ??? ?? url: 'index.php?model=user&action=delete&ids='+ids,
??? ??? ??? ??? ??? ?? success: function(result){
??? ??? ??? ??? ??? ??? ??? json = Ext.util.JSON.decode(result.responseText);
??? ??? ??? ??? ??? ??? ??? ds.reload();
??? ??? ??? ??? ??? ??? ??? }
??? ??? ??? ??? ??? });
??? ??? ??? ??? }
??? ??? ??? });??? ???
??? ??? } else {
??? ??? ??? Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');
??? ??? }
??? }
??? loadend();
});
</script>
<div id="north-div"></div>
<div id="center"></div>

热点排行