在ExtJS中检查Grid Panel中的现有值

时间:2012-01-27 19:21:13

标签: extjs extjs4

因此,如果我在ExtJS 4中有一个网格面板,我该如何检查其中的值?

我正在构建一个弹出窗口以向gridpanel添加值,我想确保用户尝试添加到gridpanel的值尚未在网格面板中列出。

我一直在搜索文档一段时间,并在谷歌上搜索,但没有找到任何东西。

1 个答案:

答案 0 :(得分:1)

我在http://dev.sencha.com/deploy/ext-4.0.7-gpl/examples/grid/array-grid.html

的示例底部添加了以下代码

希望这对您来说是一个开始,尽管您可能需要考虑其他因素,例如以下内容,以便设计出最强大的解决方案:

  • 如果在网格中多次出现相同的值会怎样?
  • 如果网格中的数据是分页的,该怎么办?

CODE:

dockedItems: [{
        xtype: 'toolbar',
        items : [ {
            xtype: 'button',
            text: 'Seek Value',
            handler: function() {
        Ext.Msg.prompt('Value in Grid?', 'Search:', function(btn, text){
                if (btn == 'ok' && text){
                    var columnNames = Ext.Array.pluck(grid.columns, 'dataIndex');

                    grid.store.data.each(function(record, index) {
                        for (var i=0,n=columnNames.length; i<n; i++) {
                            var columnName = columnNames[i];

                            if (columnName) { //protects against null dataIndex using pluck above
                                if (record.get(columnName) == text) {
                                    console.log(index); //row
                                    console.log(columnName);
                                    return;
                                }
                            }
                        }
                    });
                }
        });
            }
        }],
        dock: 'bottom'
    }]