【问题标题】:Unable to show the "Date" filter values on ExtJS column filters after retrieval of data检索数据后无法在 ExtJS 列过滤器上显示“日期”过滤器值
【发布时间】:2018-01-24 14:21:09
【问题描述】:

我有一个要求,我必须在加载时在 ExtJS 网格上应用动态日期过滤器(我从响应中获取日期)。我试过但它没有显示过滤日期,也没有标记“之前/之后/开启” " 过滤列的字段。请帮助

这是我用过的代码,

grid.filters.addFilter({ 
    type: 'date', 
    operator: "eq", 
    value: "11/15/2016",
    dataIndex: gridCols[i].dataIndex,
    active: true 
});

【问题讨论】:

  • 你能把你的精力放在sencha FIDDLE上吗?
  • 该值必须是日期。试试value: Ext.Date.parse("11/15/2016", "m/d/Y")
  • @Alexander 请看我下面提到的代码
  • @Njdhv 请参考以下代码

标签: date gridview extjs extjs5 extjs-grid


【解决方案1】:
     var onDate = Ext.Date.add(new Date(dt), Ext.Date.DAY); //converting date from String to Date format.
//variable dt has date in string format eg:"11/15/2016"
     grid.columns[i].filter.setActive(true);
     grid.columns[i].filter.setValue({ lt: onDate }); //lt,gt,eq are the fields of the date filter
     grid.columns[i].filter.fields.lt.value = onDate;
  • 因此,我通过这种方式动态设置响应中的过滤器。
  • 但请确保在“afterrender”中加载 菜单 网格列 网格事件作为日期过滤器的菜单项不会在后台加载,直到 我们打开它对应的过滤器。 所以他们不会被检查。

     if (!grid.getView().headerCt.menu) {
        grid.getView().headerCt.getMenu();
    }
    

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多