rich: inplaceInput редактировать текст, обновлять компонент - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть таблица rich: dataTable, содержащая компонент rich: inplaceInput и несколько столбцов

<h:column>
  <f:facet name="header">Next Fire</f:facet>
  <h:outputText value="#{_quartzJobDetails.qrtzTriggerses.nextFireTime}" >
    <s:convertDateTime type="both" dateStyle="short"/>
  </h:outputText>
</h:column>

<h:column>
         <f:facet name="header">Cron Expression</f:facet>
         <rich:inplaceInput layout="block" value="#{_quartzJobDetails.qrtzTriggerses.qrtzCronTriggers.cronExpression}" 
               id="inplaceInput"
               selectOnEdit="true" 
               editEvent="ondblclick">
              <a:support event="onviewactivated" reRender="quartzJb" bypassUpdates="false" 
                        action="#{quartzAction.rescheduleJob(_quartzJobDetails.qrtzTriggerses)}"/>
         </rich:inplaceInput>
</h:column>

метод действия:

public void rescheduleJob(QrtzTriggers qrtztrigger){
        CronTrigger trigger;
        try {
            trigger = // boring trigger creation omitted
            this.controller.getScheduler().rescheduleJob(); //boring reschedule omitted
            this.entityManager.merge(qrtztrigger);  //this didn't help any
        } catch (ParseException e) {
            log.error("cron expression incorrect " + e);
        } catch (SchedulerException e) {
            log.error("scheduler no likey " + e);
        }
}

Когда пользователь редактирует inplaceInput с новымВ cronExpression столбец «Next Fire» должен быть обновлен с новым временем срабатывания.Это происходит в базе данных, но пользовательский интерфейс не обновляется, пока я физически не обновлю страницу.У меня была эта проблема раньше, и мое лучшее решение заключается в использовании JavaScript для обновления страницы для меня - но это не должно быть необходимым.Итак, как мне получить данные для обновления без фактического обновления страницы моего браузера?
Seam 2.2 Richfaces 3.3.1, JSF 1.2, JBoss 5.1

1 Ответ

0 голосов
/ 17 февраля 2012

Является ли quartzJb идентификатором таблицы, которую вы хотите изменить?Если нет, просто добавьте идентификатор таблицы, которую вы хотите изменить, в тег поддержки:

 <a:support event="onviewactivated" reRender="quartzJb,jobTableId" ...
...