如何在extjs中的网格中仅允许数字过滤器中的正数

时间:2012-09-19 11:55:01

标签: extjs extjs4.1

这是我的第一篇文章,所以我可能会在错误的帖子中发帖,对不起。

我想在数字网格过滤器中限制负值,只允许在网格中的数字过滤器中使用正数,我无法找到如何执行此操作。

这是我的代码

var myFilters =
{
    ftype     : 'filters',
    encode    : false,
    local     : false,
    extend    : 'Ext.data.Model',          
    filters    :
    [
        {
            type        : 'numeric',
            dataIndex    : 'utilization_per'
        }
    ]
};

deviceUtilGridPanel = new Ext.grid.GridPanel(
{
    features    : [myFilters],
    columns :
    [
          {id:'ru_utilization_per', header: "Utilization(%) (U)", sortable: true,     dataIndex: 'utilization_per', filterable: true, filter :{type:'numeric'},width:80}
    ]
});

非常感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用过滤器上的menuItemCfgs配置来修改过滤器菜单使用的表单字段。

var myFilters = {
    ftype:   "filters",
    encode:  false,
    local:   false,
    filters: [{
        dataIndex:    "utilization_per",
        type:         "numeric",
        menuItemCfgs: {
            minValue: 1  // Or 0, or whatever you want
        }
    }]
};

作为旁注(与答案没有关系),您的代码有一些问题。您无需将extend添加到过滤器配置中,因为您没有对其进行扩展,也无需了解您的模型。您的列定义中的header配置已被弃用,而text执行相同的操作。列可以默认过滤,因此您不需要filterable: true。如果您在过滤器功能配置中指定了列过滤器,则无需在列级别指定它。