EasyUI datagrid 過濾事件段

劍握在手發表於2015-05-12
  1 //dateTimeRange過濾擴充套件
  2 $.extend($.fn.datagrid.defaults.filters, {
  3     dateRange: {
  4         /*onInit: function(target){
  5             var name = getPluginName(target);
  6             alert('ss');
  7             $(target).find('.d1,.d2').datebox.unbind('change').bind('change', function(e){
  8                 $(target)[name]('removeFilterRule', field);
  9                 $(target)[name]('doFilter');
 10             });
 11         },*/
 12          init: function(container, options){
 13              var c = $('<div style="display:inline-block"><input class="d1"><input class="d2"></div>').appendTo(container);
 14              c.find('.d1,.d2').datebox();
 15              c.find('.d1,.d2').datebox().unbind('change');
 16              c.find('.d1').datebox({
 17                  onSelect:function(date){
 18                          var d1 = c.find('.d1');
 19                          var d2 = c.find('.d2');
 20                          
 21                          
 22                          var valueFrom = d1.datebox('getValue');
 23                          var valueTo = d2.datebox('getValue');
 24                          if($.trim(valueFrom)!=''){
 25                              valueFrom = valueFrom+" 00:00:00";
 26                              $('#dataGrid').datagrid('addFilterRule', {
 27                                 field: 'lastSendTimeFrom',
 28                                 op: 'greaterorequal',
 29                                 value: valueFrom 
 30                                 });
 31                          }
 32                         
 33                          if($.trim(valueTo)!=''){
 34                              valueTo = valueTo+" 23:59:59";
 35                              $('#dataGrid').datagrid('addFilterRule', {
 36                                 field: 'lastSendTimeTo',
 37                                 op: 'lessorequal',
 38                                 value: valueTo 
 39                                 });
 40                          }
 41                         
 42                         $('#dataGrid').datagrid('doFilter');
 43 
 44                          d1.datebox('setText',date.getFullYear()+'-'+ (date.getMonth()+1) +'-'+date.getDate());
 45                          d1.datebox('hidePanel');
 46                 } 
 47              });
 48              
 49              c.find('.d2').datebox({
 50                  onSelect:function(date){
 51                          var d1 = c.find('.d1');
 52                          var d2 = c.find('.d2');
 53                          
 54                          
 55                          var valueFrom = d1.datebox('getValue');
 56                          var valueTo = d2.datebox('getValue');
 57                          if($.trim(valueFrom)!=''){
 58                              valueFrom = valueFrom+" 00:00:00";
 59                              $('#dataGrid').datagrid('addFilterRule', {
 60                                 field: 'lastSendTimeFrom',
 61                                 op: 'equal',
 62                                 value: valueFrom 
 63                                 });
 64                          }
 65                         
 66                          if($.trim(valueTo)!=''){
 67                              valueTo = valueTo+" 23:59:59";
 68                              $('#dataGrid').datagrid('addFilterRule', {
 69                                 field: 'lastSendTimeTo',
 70                                 op: 'equal',
 71                                 value: valueTo 
 72                                 });
 73                          }
 74                         
 75                         
 76                         $('#dataGrid').datagrid('doFilter');
 77 
 78                          d2.datebox('setText',date.getFullYear()+'-'+ (date.getMonth()+1) +'-'+date.getDate());
 79                          d2.datebox('hidePanel');
 80                 } 
 81              });
 82              
 83              return c;
 84          },
 85          destroy: function(target){
 86              $(target).find('.d1,.d2').datebox('destroy');
 87          },
 88          getValue: function(target){
 89              var d1 = $(target).find('.d1');
 90              var d2 = $(target).find('.d2');
 91              return d1.datebox('getValue') + ':'+d2.datebox('getValue');
 92          },
 93          setValue: function(target, value){
 94              var d1 = $(target).find('.d1');
 95              var d2 = $(target).find('.d2');
 96              var vv = value.split(':');
 97              d1.datebox('setValue', vv[0]);
 98              d2.datebox('setValue', vv[1]);
 99          },
100          resize: function(target, width){
101              $(target)._outerWidth(width)._outerHeight(22);
102              $(target).find('.d1,.d2').datebox('resize', width/2);
103          }
104      }
105  });

 

使用:

1 $('#dataGrid').datagrid('enableFilter' , [{
2                     field:'lastSendTime',
3                     type:'dateRange'
4                 }
5                 
6         ]);

 

效果截圖:

相關文章