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 ]);
效果截圖: