日期过滤的许多问题&在jqgrid中格式化

时间:2017-07-12 12:03:42

标签: javascript jquery jqgrid

我在jqgrid中有一个列应该处理日期信息,实际上我对这个列有很多问题:

1-从后端返回日期并显示如下29/03/2017 00:00:00 ...所以当我尝试使用这样的格式化程序:formatter: "date", formatoptions: { newformat: "d-M-Y" }时,日期会被破坏并且完全不同日期显示为09-Aug-2033

2-当我尝试添加日期选择器搜索时,它什么也没做,我的意思是根本没有进行过滤,网格数据保持不变,无论如何我使用上面的格式化程序

其实我依赖的是Oleg的例子here

经过一些修改后我的代码:

{
  name: 'F_GCEO_MEETING_DATE',
  index: 'F_GCEO_MEETING_DATE',
  align: 'left',
  width: 100,
  sortable: true,
  search: true,
  editable: false,
  cellEdit: false,
  formatter: "date",
  formatoptions: {
    newformat: "d-M-Y"
  },
  editoptions: {
    dataInit: function(elem) {
      $(elem).datepicker({
        dateFormat: "dd-M-yy",
        buttonImageOnly: true,
        buttonText: "Select date",
        autoSize: true,
        changeYear: true,
        changeMonth: true,
        showButtonPanel: true,
        showWeek: true,
        onSelect: (function() {
          setTimeout(function() {
            this.triggerToolbar();
          }, 0);
        })
      });
    }
  },
  searchoptions: {
    sopt: ["eq", "ne", "lt", "le", "gt", "ge"],
    attr: {
      placeholder: "dd-M-yyyy"
    },
    dataInit: function(elem) {
      $(elem).datepicker({
        dateFormat: "dd-M-yy",
        buttonImageOnly: true,
        buttonText: "Select date",
        autoSize: true,
        changeYear: true,
        changeMonth: true,
        showButtonPanel: true,
        showWeek: true,
        onSelect: (function() {
          setTimeout(function() {
            this.triggerToolbar();
          }, 0);
        })
      });
    }
  }
}

jquery版本:1.9.1

jqGrid版本:4.5.0

关于fork,我不确定,它实际上是liferay库的一部分,但似乎是免费版本。

这与my previous question有关,但有更多细节和不同要求

1 个答案:

答案 0 :(得分:1)

您需要指定进入日期的来源格式 - 默认为ISO数据,如Y-m-d。所以这要工作,你需要设置像这样的srcformat选项:

  {
  name: 'F_GCEO_MEETING_DATE',
  index: 'F_GCEO_MEETING_DATE',
  align: 'left',
  width: 100,
  sortable: true,
  search: true,
  editable: false,
  cellEdit: false,
  formatter: "date",
  formatoptions: {
    srcformat : "d/m/Y H:i:s",
    newformat: "d-M-Y"
  },

至于第二个问题,我想你使用工具栏搜索,你可以在Guriddo jqGrid Knowledgebase

中使用这个论坛帖子