Как отменить событие BeforeEdit в gxt EditorGrid на основе данных, сохраненных в модели для выбранной строки - PullRequest
2 голосов
/ 22 марта 2012

У меня есть EditorGrid.Я хотел бы отменить редактирование (используя событие BeforeEdit), если у пользователя нет прав на редактирование этого конкретного столбца.Эти данные (значение canEdit) находятся в хранилище данных для строки, но не были добавлены столбец в сетке.

Я думаю, что лучший способ сделать это - отменить редактирование в событии BeforeEdit.Однако у меня возникли проблемы с получением данных из выбранной строки в событии BeforeEdit.Если бы кто-то мог направить меня в правильном направлении с помощью небольшого фрагмента кода для получения значений данных из выбранной строки в событии BeforeEdit, я был бы очень признателен!Или, если есть лучший способ продолжить, хотел бы услышать от вас.

Спасибо!Дженнифер

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Вот что я использовал, чтобы сработало:

grid.addListener(Events.BeforeEdit, new Listener<BaseEvent>() {
   @Override
   ModelData comment = ((EditorGrid)be.GetSource().getSelectionModel().getSelectedItem();
   Boolean canEdit = Boolean.parseBoolean(comment.get("canEdit").toString());
   be.setCancelled(!canEdit);
}
0 голосов
/ 24 марта 2012
final EditorGrid<Plant> grid = new EditorGrid<Plant>(store, cm);        
grid.addListener(Events.BeforeEdit, new Listener<GridEvent<Plant>>(){

    @Override
        public void handleEvent(GridEvent<Plant> be) {
            //This retrieves the model being edited.
            Plant model = be.getModel();
            GWT.log("Model edited "+model.getName());           
        }           
});

Этот фрагмент использует пример программы, предоставленной GXT. Вы можете увидеть демо оригинального образца, а также полный код здесь .

...