zoukankan      html  css  js  c++  java
  • extjs grid搜索分页实例(转)

    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',50,sortable:true,dataIndex:'user_id'},
             {id:'title',header:'用户名', 100,sortable:true,dataIndex:'username'},
             {header:'真实姓名',100,sortable:true,dataIndex:'real_name'},
             {header:'电话',100,sortable:true,dataIndex:'telephone'},
             {header:'岗位状态',100,sortable:true,dataIndex:'station_status'},
             {header:'职务',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>

  • 相关阅读:
    UVA 408 (13.07.28)
    linux概念之用户,组及权限
    Java实现 蓝桥杯 历届试题 网络寻路
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 九宫重排
    Java实现 蓝桥杯 历届试题 九宫重排
  • 原文地址:https://www.cnblogs.com/huanlinll/p/ext.html
Copyright © 2011-2022 走看看