Как получить общее количество строк в Dojo EnhancedGrid?

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

var storeUOM = dijit.byId('gridUOM').store;
if (storeUOM._arrayOfAllItems.length == 0) {
    if (errors.length > 1) errors += '\n';
    errors += 'Must setup at least one unit of measure';
}

Например, сетка может начинаться с 4 строк, и пользователь удаляет их все. Этот код по-прежнему возвращает длину 4.


person Jon Mitchell    schedule 11.07.2013    source источник
comment
Дальнейшее уточнение... Сначала я загружаю сетку, используя ItemFileWriteStore. Затем пользователь имеет возможность добавлять или удалять из сетки/магазина. Я нашел следующую ссылку, чтобы получить размер набора данных, но я считаю, что это даст мне исходный размер, а не размер после добавления/удаления. livedocs.dojotoolkit.org/quickstart/data/usingdatastores/   -  person Jon Mitchell    schedule 11.07.2013


Ответы (1)


На самом деле следующий код из этой ссылки работает отлично! Я не перезагружаю магазин с URL-адреса, он просто возвращает размер текущего магазина.

var storeUOM = dijit.byId('gridUOM').store;
function size(size, request) {
   if (size == 0) {
      if (errors.length > 1) errors += '\n';
      errors += 'Must setup at least one unit of measure';
   }
}
storeUOM.fetch({query: {}, onBegin: size, start: 0, count: 0});             
person Jon Mitchell    schedule 11.07.2013