Ext JS过滤渲染列

时间:2016-02-23 13:05:07

标签: javascript extjs

我希望能够对我的数据的每一列进行过滤。每次我过滤,我都会使用:

public class Person extends RealmObject {
    private String name;
    private RealmList<Person> friends;
    // Other fields…
}

这里的问题是我要过滤的列的dataIndex是一个Object,所以我基本上过滤了'Object'的文字String值。它是Object,因为在我的商店中,我为每个dataIndex存储一个Object,并使用addFilter({ dataIndex: 0, //Or 1,2.. depending on the column i want to filter on type: 'string', value: value, }); 函数显示它。

点击标题触发菜单,我有一个文本框我输入过滤器,如果你输入单词'对象'的任何字母,它就可以了。如何使其过滤Object的值,而不是文字字符串“render

https://fiddle.sencha.com/#fiddle/163s

2 个答案:

答案 0 :(得分:2)

您的[object object]实际上说过滤器应该对字符串起作用。因此,对象被字符串化为var dataIndex = column.dataIndex, value = textfield.getValue(); grid.getStore().addFilter([{ id:"filter-"+dataIndex, filterFn:function(record) { // Example: Only return records where the object has a property by that name. return Ext.Object.getKeys(record.get(dataIndex)).indexOf(value)>-1; } }]); 并与您提供的值进行比较。

相反,您需要使用自定义过滤器功能。在过滤器上使用id会很有用,因此同一列上的新版本将替换旧版本。

iframe

答案 1 :(得分:1)

修改菜单更改侦听器

functions.php