2013-12-14 6 views
2

Я создал функцию, чтобы проверить, изменилась ли запись магазина или нет, если запись загрязнена, тогда, когда пользователь нажал кнопку сохранения setLoading, это правда, не грязно, а затем ничего не делать ,EXT JS Проверить любую новую запись в Store или нет

function isDirtyStore(theStore) { 
     var isDirty = false; 

     theStore.each(function(item){ 
      if(item.dirty == true){ 
       isDirty = true; 
      } 
     }); 
     if (!isDirty){ 
      isDirty = (theStore.removed.length > 0); 
     } 
     return isDirty; 

}; 


var BtnRouteFareSave = Ext.getCmp('BtnRouteFareSave'); 
var grid = Ext.getCmp('MyGridPanelRouteFare'); 

BtnRouteFareSave.on('click', function(){ 

if (isDirtyStore(RouteFareStore)){ 
grid.setLoading(true); 
} 
}) 

Но грязный проверяет только редактируемую запись, как насчет новой записи в магазин? как проверить?

ответ

0

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

С уважением.

0

Вы можете создать экземпляр магазина с оригинальными элементами в нем и сравнить его с новым экземпляром, в котором есть все элементы первого, а также вновь вставленный и сравнить оба или использовать add и datachanged событий.

Если событие add уволено, отметьте логическое значение, которое укажет, что ваш магазин имеет новые данные и, следовательно, имеет грязные новые) записи.

4

Ext.data.Store объект имеет метод getModifiedRecords(), который возвращает все записи, добавленные или обновленные с момента последнего фиксации.

Так что вам не нужно реализовывать свою собственную функцию, просто проверьте, возвращает ли store.getModifiedRecords() непустой массив.

Если вы хотите также проверить, удалены ли какие-либо записи из магазина, вы можете добавить, чтобы проверить store.getRemovedRecords(). Этот метод возвращает любые записи, которые были удалены из хранилища, но еще не уничтожены на прокси-сервере.

Смежные вопросы