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>

  • 相关阅读:
    6.5、Android Studio的Android Device Monitor
    使用百度地图实现基本的地图显示与定位功能
    6.4、Android Studio的GPU Monitor
    6.3、Android Studio的CPU Monitor
    6.2、Android Studio内存
    6.1、Android Studio的Android Monitor概览
    6.0、Android Studio性能优化工具
    5.3、Android Studio录像
    ScheduledThreadPoolExecutor
    InnoDB支持的最大事务数量
  • 原文地址:https://www.cnblogs.com/huanlinll/p/ext.html
Copyright © 2011-2022 走看看