Проверка существующего значения в Grid Panel в ExtJS - PullRequest
0 голосов
/ 27 января 2012

Итак, если у меня есть сеточная панель в ExtJS 4, как мне проверить значение в ней?

Я строю всплывающее окно, чтобы добавить значение в сеточную панель, и я хочуубедитесь, что значение, которое пользователь пытается добавить в панель сетки, еще не указано на панели сетки.

Я какое-то время искал документы, гуглял и ничего не нашел.

1 Ответ

1 голос
/ 28 января 2012

Я добавил следующий код в конец примера на http://dev.sencha.com/deploy/ext-4.0.7-gpl/examples/grid/array-grid.html

Надеюсь, это начало для вас, хотя у вас могут быть дополнительные соображения, такие как следующие, чтобы разработать наиболее надежное решение:

  • Что если одно и то же значение может встречаться в сетке несколько раз?
  • Что если данные в сетке разбиты на страницы?

КОД:

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'
    }]
...