【问题标题】:dateRangePicker not working properly on jqGriddateRangePicker 在 jqGrid 上无法正常工作
【发布时间】:2015-03-04 18:24:50
【问题描述】:

我有一个 jqgrid,其中一列说“UpdateTime”。我正在对其应用过滤器并使用以下代码完美地获得一个 DateRangePicker 弹出窗口。

{name:'updateTime',index:'updateTime',width:90,hidden:false,search:true,align:'center',stype:"text", 
    searchoptions:{dataInit:function(el){
        $(el).daterangepicker({ 
        dateFormat:'mm/dd/yy', 
        beforeShow: function(input, inst) {
            $.datepicker._pos = $.datepicker._findPos(input); 
            $.datepicker._pos[0] = center; 
            $.datepicker._pos[1] = center; 
        }, 
       onClose: function(event) {
         jQuery("#myGrid").trigger("reloadGrid");
       }                                                 
     });
    } 
   }
  },

我有

$("#myGrid").jqGrid('filterToolbar', {autoSearch:true,searchOnEnter:true});

问题是,在选择日期时,过滤器的文本框会填充值,但控制权不会出现在我的 java 代码中。相反,我必须再次选择过滤器文本框并按回车键。并且到下次从 daterangepicker 弹出窗口中选择日期时,控制权来自我的 java 代码,但不是最新的值。为了获得最新的值,我每次都必须输入。

那么,有什么方法可以在选择日期时调用我的控制器,或者我可以在选择日期之后自动聚焦我的过滤器文本框,这样我每次都会按 Enter 键。我可以按 Enter 键。

我也试过下面的代码

onSelect: function (dateText, inst) {
    $("#myGrid")[0].trigger("reloadGrid");
}

【问题讨论】:

    标签: jquery jqgrid daterangepicker


    【解决方案1】:

    我目前必须解决这个问题,我发现了这个:

    daterangepicker 中没有 onSelect、onClose 事件处理程序。并且您必须在重新加载之前手动更新 jqGrid 过滤器。我的解决方案对我有用(如果它看起来像 hack)是这样的。

        grid = jQuery("<table>").attr('id', myId+"_grid");
        var datePick = function(elem)
        {
           jQuery(elem).daterangepicker({
               dateFormat:"MM/DD/YYYY"
           });
           jQuery(elem).on('apply.daterangepicker', function(ev, picker) {
                var d = picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY');
                var f = {groupOp:"AND",rules:[]};
                f.rules.push({field:"time_submit",op:"eq",data:d});
                grid[0].p.search = true;
                jQuery.extend(grid[0].p.postData,{filters:JSON.stringify(f)});
                grid.trigger("reloadGrid",[{page:1,current:true}]);
            });
        }
    

    注意:字段类型为“文本”,您必须以“MM/DD/YYYY - MM/DD/YYYY”格式解析输入字符串 来源:Events of daterangepicker

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      相关资源
      最近更新 更多