Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.grid.Panel - получить количество записай (строк) ??? (https://javascript.ru/forum/extjs/27480-ext-grid-panel-poluchit-kolichestvo-zapisajj-strok.html)

potkin 14.04.2012 14:26

Ext.grid.Panel - получить количество записай (строк) ???
 
Добрый День !!!
Есть код:
function Fun(_title, _idClass) {
                var store = Ext.create('Ext.data.JsonStore', {
                    fields: [
                        { name: "id" },
                        { name: "name" }
                    ],
                    //pageSize: 20,
                    proxy: {
                        type: 'ajax',           // тип прокси = Ajax
                        url: "MyTest01.ashx?txt=" + textfieldSearch.value + "&idClass=" + _idClass,
                        reader: {
                            type: "json",
                            root: "documents"
                        }
                    }
                });
                store.load();

                var grid = Ext.create("Ext.grid.Panel", {
                    store: store,
                    title: _title,
                    closable: true,
                    columns: [
                        { text: "№", dataIndex: "id", width: 100, hidden: true },
                        { text: "Наименование", dataIndex: "name", sortable: true, resizable: true, flex: 1, width: 100 }
                    ],
                    listeners: { //Дабл Клик
                        itemdblclick: function (dv, record, item, index, e) {
                            Ext.Msg.alert(record.get('id'), record.get('temaA'));
                        }
                    }
                });

                //if(grid.RowsCount>0) - ????????????
                {
                     centralTabPanel.add(grid);
                     centralTabPanel.setActiveTab(grid);
                }
            };


Создаётся Грид и добавляется в TabPanel (Ext.tab.Panel).
Но, Грид надо добавить в TabPanel, только при условии, если к-во строк >0.
Вопросик: как получить количество строк Грида (grid) ???

С наступающим всех !!!

nekto_O 14.04.2012 15:13

Цитата:

Сообщение от potkin
как получить количество строк Грида (grid) ???

узнать количество записей в хранилище getCount

potkin 14.04.2012 15:45

Уже пробовал:
var RecordCount = store.getCount();
if (RecordCount > 0) {
   ...
}

RecordCount всегда равен "0", даже если данные есть.
Может я что-то не так делаю ???

nekto_O 14.04.2012 16:04

Цитата:

Сообщение от potkin
RecordCount всегда равен "0", даже если данные есть.

судя по всему вы проверяете наличие данных прежде чем они успевают попасть в хранилище...

potkin 14.04.2012 16:09

nekto_O,
Да, данные загружаются с задержкой, как будь-то бы я использовал отдельный поток в ВинФормах.
Сначала появился Грид, а через 0,5-1 секунды данные в нём ...

Может Вы что-то подскажите ... ???

nekto_O 14.04.2012 16:16

может это натолкнет вас на правельный путь...
...
store.on('load', function() {
    if(this.getCount() > 0) {
         // ...
    }
});
store.load();
....

potkin 14.04.2012 18:19

nekto_O,
Спасибо, всё заработало +1

Так сделал:
store2.on('load', function () {
                    if (this.getCount() > 0) {
                        centralTabPanel.add(grid);
                        centralTabPanel.setActiveTab(grid);
                    }
                    else {
                        Ext.Msg.alert("The result of the sample", "We apologize, but nothing has been found!");
                    }
                });
                store2.load();


Часовой пояс GMT +3, время: 11:00.