2012-02-28 5 views
1

Я использую локальный магазин для своей сетки с панелью pagingscrollbar. У меня есть кнопка удаления, для которой записана функция onClick, которая выполняет операцию удаления (путем вызова сервлета) из базы данных. Теперь, когда это удаление выполняется, я хотел бы удалить запись из моей сетки.Проблема с локальным хранилищем ExtJs 4 при удалении записи

Я достижение этой помощью следующей строки:

myStore.removeAt(recIdx); 

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

Есть ли способ преодолеть это состояние ???? (Я хочу сохранить свой магазин как «местный»)

Спасибо !!!

+0

, так как вы используете нумерацию страниц, делает ваш магазин имеет полномочие памяти ?, и принять следующую страницу из локальных переменных или делает запрос сервера для следующей страницы? – nscrob

+0

Я использую прокси-тип как 'pagingmemory' –

ответ

3

Это не ваш местный магазин.

Прокрутка пейджера использует предварительную выборку, чтобы не отображать все данные одновременно.

Проблема, вероятно, связана с тем, что удаленная запись все еще находится в предварительно загруженных данных. Вы можете попробовать убирая упреждающую информацию, где вы выполняете операцию удаления:

yourStore.prefetchData.clear(); 

На самом деле просто удалить, что одна запись из опережающей выборки данных может работать лучше. Но вы не сможете удалить его, используя индексный номер, потому что в данных предварительной выборки есть только кусок фактического хранилища. Вы должны использовать метод удалить с пластинкой Ext.data.Model в качестве параметра вместо:

yourStore.prefetchData.remove(theRecord);