0
我有豐富:dataTable中含有豐富:inplaceInput組件和幾列豐富: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);
}
}
當用戶編輯inplace使用新的cronExpression輸入「Next Fire」列應更新爲新的時間點擊。這發生在數據庫中,但除非我物理刷新頁面,否則UI不會更新。我以前遇到過這個問題,而我最好的解決方案是使用JavaScript爲我刷新頁面 - 但這不是必須的。那麼如何在不刷新瀏覽器頁面的情況下更新數據?
縫2.2 RichFaces的3.3.1,JSF 1.2,JBoss的5.1
Thanx mbockus,但是,是的,quartzJb是表ID。 – gebuh 2012-02-18 03:19:27
實際上是否在您的操作方法中更新了nextFireTime?我會嘗試在getNextFireTime()方法上設置一個斷點,以查看它是否在數據表重新渲染時被調用。這可能會給你一些線索,說明它爲什麼沒有返回正確的價值。 – 2012-02-18 03:48:30