extjs grid搜索分页实例

  1. <script type="text/javascript">
  2. Ext.onReady(function(){
  3.     var ds = new Ext.data.Store({//这是数据源
  4.         proxy : new Ext.data.HttpProxy({url:'index.php?model=user&action=list&'}),
  5.         reader: new Ext.data.JsonReader({
  6.             root: 'topics',
  7.             totalProperty: 'totalCount',
  8.             id: 'user_id'
  9.             },[
  10.             'user_id','username','real_name','telephone','station_status','headship'
  11.         ])
  12.     });
  13.     var colModel = new Ext.grid.ColumnModel([//定义列
  14.          {header:'ID',width:50,sortable:true,dataIndex:'user_id'},
  15.          {id:'title',header:'用户名', width:100,sortable:true,dataIndex:'username'},
  16.          {header:'真实姓名',width:100,sortable:true,dataIndex:'real_name'},
  17.          {header:'电话',width:100,sortable:true,dataIndex:'telephone'},
  18.          {header:'岗位状态',width:100,sortable:true,dataIndex:'station_status'},
  19.          {header:'职务',width:100,sortable:true,dataIndex:'headship'}
  20.         ]);
  21.     var tb = new Ext.Toolbar('north-div');//创建一个工具条
  22.     
  23.     tb.add({
  24.         text: '添加',
  25.         handler: newUser
  26.         },{
  27.         text: '编辑',
  28.         handler: editUser
  29.         },{
  30.         text: '删除',
  31.         handler: delUser
  32.     });
  33.         
  34.     var grid = new Ext.grid.GridPanel({//列表
  35.                 border:false,
  36.                 region:'south',
  37.                 height:500,
  38.                 loadMask: true,
  39.                 el:'center',
  40.                 title:'条目列表',
  41.                 store: ds,
  42.                 cm: colModel,
  43.                 autoScroll: true,
  44.                 bbar: new Ext.PagingToolbar({
  45.                     pageSize: 20,
  46.                     store: ds,
  47.                     displayInfo: true,
  48.                     displayMsg: '第{0} 到 {1} 条数据 共{2}条',
  49.                     emptyMsg: "没有数据"
  50.                 })
  51.             });
  52.     var top = new Ext.FormPanel({//这里是搜索表单
  53.         buttonAlign:'right',
  54.         labelWidth:70,
  55.         region:'center',
  56.         frame:true,
  57.         title: '搜索',
  58.         items: [{
  59.                 layout:'column',
  60.                 items:[{
  61.                     columnWidth:.33,
  62.                     layout: 'form',
  63.                     items: [{
  64.                         xtype:'textfield',
  65.                         fieldLabel: '用户名',
  66.                         id: 'username',
  67.                         name: 'username',
  68.                         anchor:'90%'
  69.                     }]
  70.                 },{
  71.                     columnWidth:.33,
  72.                     layout: 'form',
  73.                     items: [{
  74.                         xtype:'textfield',
  75.                         fieldLabel: '姓名',
  76.                         name: 'real_name',
  77.                         id: 'real_name',
  78.                         anchor:'90%'
  79.                     }]
  80.                 },{
  81.                     columnWidth:.33,
  82.                     layout: 'form',
  83.                     items: [{
  84.                         xtype:'textfield',
  85.                         fieldLabel: 'Email',
  86.                         name: 'email',
  87.                         id: 'email',
  88.                         vtype:'email',
  89.                         anchor:'90%'
  90.                     }]
  91.                 }]
  92.             }
  93.         ],
  94.         buttons: [{
  95.             text: '保存',
  96.             handler:function(){
  97.                                 // 这里是关键,重新载入数据源,并把搜索表单值提交
  98.                 ds.load({params:{start:0, limit:20,
  99.                     username:Ext.get('username').dom.value,
  100.                     real_name:Ext.get('real_name').dom.value,
  101.                     email:Ext.get('email').dom.value}});
  102.             }
  103.         },{
  104.             text: '重置',
  105.             handler:function(){top.form.reset();}
  106.         }]
  107.     });
  108.     var viewport = new Ext.Viewport({
  109.         layout:'border',
  110.         items:[{
  111.               border:false,
  112.               region:'north',
  113.               contentEl:'north-div',
  114.               tbar:tb,
  115.               height:26
  116.             },top,
  117.             grid
  118.         ]}
  119.     );
  120.     ds.load({params:{start:0, limit:20}});
  121.         // 这里很关键,如果不加,翻页后搜索条件就变没了,这里的意思是每次数据载入前先把搜索表单值加上去,这样就做到了翻页保留搜索条件了
  122.     ds.on('beforeload',function(){
  123.         Ext.apply(
  124.         this.baseParams,
  125.         {
  126.             username:Ext.get('username').dom.value,
  127.             real_name:Ext.get('real_name').dom.value,
  128.             email:Ext.get('email').dom.value
  129.         });
  130.     });
  131.     function newUser() {
  132.         parent.newTab('400012','添加用户','index.php?model=user&action=add');
  133.     }
  134.     function editUser() {
  135.         var s = grid.getSelectionModel().getSelections();
  136.         if (s.length==0) {
  137.             Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');
  138.         }
  139.         for (i=0;i<s.length;i++) {
  140.             var id = s[i].id;
  141.             parent.newTab('400012'+id,'编辑用户','index.php?model=user&action=add&user_id='+id);
  142.         }
  143.     }
  144.     function delUser() {
  145.         var ids = getId(grid);
  146.         if (ids) {
  147.             Ext.Msg.confirm('确认''真的要删除吗?'function(btn){
  148.                 if (btn == 'yes'){
  149.                     Ext.Ajax.request({
  150.                        url: 'index.php?model=user&action=delete&ids='+ids,
  151.                        success: function(result){
  152.                             json = Ext.util.JSON.decode(result.responseText);
  153.                             ds.reload();
  154.                             }
  155.                     });
  156.                 }
  157.             });     
  158.         } else {
  159.             Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');
  160.         }
  161.     }
  162.     loadend();
  163. });
  164. </script>
  165. <div id="north-div"></div>
  166. <div id="center"></div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值