zoukankan      html  css  js  c++  java
  • 【extjs】 extjs5 Ext.grid.Panel 搜索示例

    先看效果图:

    页面js:

    <script type="text/javascript">
     
     /**
      * 日志类型 store
      * */
      var logTypeStore = Ext.create('Ext.data.Store', {
     	 fields: ['type', 'name'],
     	 data : [
     		 {"type":"1", "name":"登录日志"},
     		 {"type":"2", "name":"操作日志"}
     	 ]
      });
     
     /**
    	 * 搜索面板
    	 * */
    	  var panel = Ext.create('Ext.form.Panel', {
    		  title: '按条件搜索',
    		 //  600,
    		  defaultType: 'textfield',
    		  frame: true,
    		  method: 'POST',
    		  collapsible: true,//可折叠
    		  titleCollapse:true,
    		  bodyPadding: 5,
    		  layout: 'column',
    		  items: [{
    			  fieldLabel: '日志类型',
    			  labelWidth:60,
    			  id: 'type',
    			  xtype:"combo",
    			  editable:false,
    			  store:logTypeStore,
    			  valueField:'type',
    			  displayField:'name'
    		  }, {
    			  fieldLabel: '日志开始时间',
    			  labelWidth:78,
    			  id: 'start',
    			  xtype:"datefield",
    			  format: 'Y-m-d',
    			  editable:false
    		  },{
    			  fieldLabel: '日志结束时间',
    			  labelWidth:78,
    			  id: 'end',
    			  xtype:"datefield",
    			  format: 'Y-m-d',
    			  editable:false
    		  },{
    			  xtype: 'button',
    			  text: '搜索',
    			  iconCls :"search",
    			  margin: '0 0 0 5',
    			  handler: function () {
    				  var start = Ext.getCmp('start').getValue(); //获取文本框值
    				  var end = Ext.getCmp('end').getValue();
    				  var type = Ext.getCmp('type').getValue();
    				 
    					  logStore.load({ params: { startDate: start,endDate:end,type:type} });//传递参数
    				 
    			  }
    		  }],
    		  renderTo: Ext.getBody()
    	  });
     //数据
     var logStore=Ext.create('Ext.data.Store', {
    	    storeId:'logStore',
    	    fields:['type', 'param', 'url','vip','vtime','lid'],
    	    proxy: {
    	        type: 'ajax',
    	        url:'${pageContext.request.contextPath}/back/sysLog/sysLogList.do',
    	        reader: {
    				// 設置 json樣式
    	            type: 'json',
    				rootProperty:"rows", //json 数据根节点
    				totalProperty:"total"//总数
    	        }
    	    },
    	    autoLoad: true,
    	    pageSize:25 //每页记录数默认25
    	});
     
     logStore.on('beforeload',function(store, options){
    	 var start = Ext.getCmp('start').getValue(); //获取文本框值
    	  var end = Ext.getCmp('end').getValue();
    	  var type = Ext.getCmp('type').getValue();
    	 var new_params ={ startDate: start,endDate:end,type:type};  
         Ext.apply(store.proxy.extraParams, new_params);  
     });
     logStore.load({
    	 params: {
    		 start: 0,
    		 limit: 10
    	 }
     });
     
     var ckm=Ext.create("Ext.selection.CheckboxModel");
      Ext.onReady(function(){
        
          /**
          Grid 数据展示
          */
    		Ext.create('Ext.grid.Panel', {
    		    title: '日志信息',
    		    id:'logGridPanel',
    		    selModel:ckm,
    		    store:logStore,// Ext.data.StoreManager.lookup('simpsonsStore'),
    		    columns: [
    		         { text: '日志ID',  dataIndex: 'lid',align: 'center',hidden:true,hideable:false,sortable:false },
    		       
    		        { text: '标题', dataIndex: 'title',align: 'center',sortable:false },
    		        { text: '访问链接', dataIndex: 'url',align: 'center',sortable:false },
    		        { text: '访问者IP', dataIndex: 'vip',align: 'center',sortable:false },
    		        { text: '日志时间', dataIndex: 'vtime',align: 'center',scope:this,renderer:function(value){
    		        	var val=longToString(value,'Y-m-d H:m:s')
    		        	//console.info('获取的值为:{}'+value+' , '+val);
    		        	return  val;
    		        } },
    				{ text: '日志类型', dataIndex: 'type',align: 'center',sortable:false,renderer:function(value){
                                        // console.info('用户类型:'+value+",类型:"+ typeof value);
    					return value==1?"登录日志":"操作日志";
    				} },
    				  { text: '请求参数', dataIndex: 'param',align: 'center',sortable:false },
    		    ],
    		  forceFit:true,//强制列表宽度自适应
    		   autoLoad:true,
    		   //工具条
    		    tbar: Ext.create('Ext.toolbar.Toolbar',{
    		    	
    		    	//width   : 500,
    				items: [{
    					text: '删除',
    					xtype: 'button',
    					iconCls: 'delete',
    					id: 'log_delete',
    					hidden:false,
    					handler: logInfoDel
    				}]
    		    	
    		    }),
    		    renderTo: Ext.getBody(),
    		    //分页
    		    bbar: Ext.create('Ext.toolbar.Paging',{
    		    	beforePageText:'当前第',
    		    	afterPageText:'页',
    		    	refreshText:'刷新',
    		    	store:logStore,
    		    	displayInfo:true,
    		    	displayMsg:'显示:{0}-{1}条,总共:{2}条',
    		    	emptyMsg:'当前查询无记录'
    		    })
    		});
      });
    
    
    
     
    
     
      
      
      //删除日志信息
      function logInfoDel(){
    
    	  var uid='';
    	  var selectionModel = Ext.getCmp('logGridPanel').getSelectionModel();
    	  var selection = selectionModel.getSelection();
    	  if(selection.length==0){
    		  Ext.Msg.alert("提示","请选择要删除的记录!");
    		  return ;
    	  }else{
                Ext.Msg.confirm("提示","确定删除?",function(button, text){
    				if(button=="yes"){
    					for(var i=0;i<selection.length;i++){
    						uid = uid+selection[i].get('lid')+",";
    					}
    					Ext.Ajax.request({
    						url: '${pageContext.request.contextPath}/back/sysLog/delete.do',
    						params:{ids:uid},
    						/**
    						 *Object {request: Object, requestId: 3, status: 200, statusText: "OK",
    		   *  responseText: "{"restMsg":"用户删除成功!","success":true}"…}
    						 * @param response
    						 * @param opts
    						 */
    						success: function(response, opts) {
    
    							Ext.Msg.alert("信息提示","日志信息刪除成功!");
    							Ext.getCmp('logGridPanel').getStore().reload();
    						},
    						failure: function(response, opts) {
    							Ext.Msg.alert("信息提示","刪除失敗!");
    						}
    					});
    				}
    			});
    
    	  }
    
    	  
      }
    
     </script>
    

      

  • 相关阅读:
    To select the file to upload we can use the standard HTML input control of type
    Cascading Menu Script using Javascript Explained
    网站首页head区代码规范
    轻松掌握 Java 泛型
    JDK 5.0 中的泛型类型学习
    如何在firefox下获取下列框选中option的text
    是同步方法还是 synchronized 代码? 详解多线程同步规则
    javascript select option对象总结
    Select的动态取值(Text,value),添加,删除。兼容IE,FireFox
    javascript在ie和firefox下的一些差异
  • 原文地址:https://www.cnblogs.com/lonelywolfmoutain/p/5324012.html
Copyright © 2011-2022 走看看