Как запретить редактируемому DataTable PrimeFaces устанавливать обновленное значение в переменную? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть ajax слушателей в моем PrimeFaces (7.0) DataTable:

<p:ajax event="rowEditInit" listener="#{editKey.onRowEditInit(event, key)}"/>
<p:ajax event="rowEdit" listener="#{editKey.onRowEdit(event, key)}"/>

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

private KeyManagementKeys oldKey;

public void onRowEditInit(RowEditEvent event, KeyManagementKeys key) {
    oldKey = key;
}

public void onRowEdit(RowEditEvent event, KeyManagementKeys newkey) {
    keylistService.updateKey(newkey, oldKey);
}

Проблема в том, что oldKey обновляется до отредактированных значений при редактировании строки в пользовательском интерфейсе. Таким образом, к моменту вызова onRowEdit для завершения редактирования newKey и oldKey имеют одно и то же значение.

Как предотвратить автоматическое обновление значения c любой переменной с таким же типом как значения DataTable (KeyManagementKeys)? Любая помощь с благодарностью!

1 Ответ

1 голос
/ 22 февраля 2020

Не могли бы вы попробовать это (я не знаю, каков класс KeyManagementKeys, поэтому в коде могут потребоваться некоторые изменения), чтобы отсоединить две переменные

public void onRowEditInit(RowEditEvent event, KeyManagementKeys key) {
    KeyManagementKeys oldKey = new KeyManagementKeys();
    BeanUtils.copyProperties(oldKey, key);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...