Nano Hash - криптовалюты, майнинг, программирование

Primefaces DataTable p: rowEditor, как получить статус редактирования?

PF 3.5.10, Mojarra 2.1.21, JBoss 7.1.1, PE 7.1, Omnifaces 1.5

Я хочу использовать редактирование строк с данными в p:Dialog. У меня есть таблица данных с редактированием строки в диалоговом окне. (Витрина: http://www.primefaces.org/showcase/ui/datatableRowEditing.jsf) Если я нажму «ОК» в диалоговом окне, изменения должны быть сохранены, а если я нажму «Отмена», изменения будут отклонены. Если активировано редактирование строки для строки и я могу изменить значения в строке, а затем нажимаю «ОК» в диалоговом окне, активные изменения в строке будут потеряны. Как я могу получить фактический статус редактирования? Как я могу узнать, редактируется ли в настоящее время строка в таблице данных? Если я знаю, что могу предупредить пользователя, что изменения будут потеряны.

Изменить: ссылка на источники PF Grepcode: источники PF isEditingRow()

<p:dialog>
  <h:form>
     <p:tabView cache="false" id=.. binding=..>
         <p:tab>
            <p:dataTable binding=.. id=... widgetVar=... var=.. >
            </p:dataTable>
         </p:tab>
     </p:tabView>
         <p:commandButton process="@form" action="myBean.listener()" value="OK" update="@form"
           onstart="anotherTable.filter()" />

  </h:form>
</p:dialog>

Изменить: я принял ответ, потому что сам реализовал необходимую функцию.


Ответы:


1

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

Привязка компонента, вероятно, является более простым вариантом...

29.07.2013
  • Что вы имеете в виду под привязкой компонента? Я пытался связать компоненты DataTable и RowEditor. DataTable имеет метод isEditingRow(), этот метод всегда возвращает false. А в RowEditor Component интересных методов я не нашел. Есть ли какие-то методы, которые я пропустил? 29.07.2013
  • У вас может быть проблема, связанная с фазой. Когда вы нажимаете OK, он обрабатывает форму и, возможно, отредактированную строку. К тому времени, когда вы вызываете isEditingRow(), редактирование завершено, и компонент уже сброшен. Вы делаете частичную отправку на кнопку? 29.07.2013
  • Я обновил свой ответ. Я использую частичное значение отправки по умолчанию для commandButton, которое является ложным. Если я ищу в источниках PF isEditingRow(), он будет использоваться только один раз в классе DataTableRenderer. Я не уверен, что это за метод. 30.07.2013
  • Кнопка команды имеет process="@form", что означает, что частичная отправка обработает все в вашей форме. Что вам нужно, так это process="@this" (вероятно, и для обновления), который не будет возиться с редактором строк. Теперь посмотрите, получится ли в myBean.listener() другой результат для .isEditingRow(). 30.07.2013
  • Я попробовал ваш совет заменить process=@form на process=@this, к сожалению, это не помогает. 30.07.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..