ace:dateTimeEntry';ui中的s值:手动输入时通过ace:ajax重复重新显示和/或不清除
我重新创造了这个世界,并且取得了成功;然而,一旦我将ace:datetime条目包装到ui:repeat中,功能似乎就停止了 总体问题:ace:dateTimeEntry';ui中的s值:手动输入时通过ace:ajax重复重新显示和/或不清除,ajax,jsf,icefaces-3,Ajax,Jsf,Icefaces 3,我重新创造了这个世界,并且取得了成功;然而,一旦我将ace:datetime条目包装到ui:repeat中,功能似乎就停止了 总体问题: 在ui:repeat中,如果用户从cal_输入(ace:dateTimeEntry的)中签出或提交表单,则ace:dateTimeEntry和ice:outputText的值将重新出现,即使在AJAX dateTextChangeListener触发(通过System.out语句见证)之后也是如此 如有任何想法,将不胜感激 环境信息 -冰面3.3.0 -JS
在ui:repeat中,如果用户从cal_输入(ace:dateTimeEntry的)中签出或提交表单,则ace:dateTimeEntry和ice:outputText的值将重新出现,即使在AJAX dateTextChangeListener触发(通过System.out语句见证)之后也是如此 如有任何想法,将不胜感激
环境信息
-冰面3.3.0
-JSF2.0
-JBoss应用服务器
目录结构
-layout.xhtml
--main.xhtml(具有
)---date.xhtml
Date.xhtml-不起作用示例
<div>
<ui:repeat id="toast" value="#{backingBean.currentDetails}" var="row">
<ace:panel>
<ice:panelGrid width="100%">
<ice:panelGroup>
<ice:outputLabel for="text" value="Selected Date: "/>
<ice:outputText id="text" value="#{backingBean.selectedDate}">
<f:convertDateTime pattern="MMMM dd, yyyy"/>
</ice:outputText>
</ice:panelGroup>
<ice:panelGrid width="100%">
<ace:dateTimeEntry id="cal" value="#{backingBean.selectedDate}">
renderAsPopup="true"
timeZone="Canada/Mountain"
pattern="MMM/dd/yyyy">
<ace:ajax event="dateSelect" listener="#{backingBean.dateSelectListener" render=":mainForm:toast:0:cal :mainForm:toast:0:text"/>
<ace:ajax event="dateTextChange" listener="#{backingBean.dateTextChangeListener" render=":mainForm:toast:0:cal :mainForm:toast:0:text"/>
</ace:dateTimeEntry>
</ice:panelGrid>
</ace:panel>
</ui:repeat>
</div>
<div>
<ace:panel>
<ice:panelGrid width="100%">
<ice:panelGroup>
<ice:outputLabel for="text" value="Selected Date: "/>
<ice:outputText id="text" value="#{backingBean.selectedDate}">
<f:convertDateTime pattern="MMMM dd, yyyy"/>
</ice:outputText>
</ice:panelGroup>
<ice:panelGrid width="100%">
<ace:dateTimeEntry id="cal" value="#{backingBean.selectedDate}">
renderAsPopup="true"
timeZone="Canada/Mountain"
pattern="MMM/dd/yyyy">
<ace:ajax event="dateSelect" listener="#{backingBean.dateSelectListener" render="@this text"/>
<ace:ajax event="dateTextChange" listener="#{backingBean.dateTextChangeListener" render="@this text"/>
</ace:dateTimeEntry>
</ice:panelGrid>
</ace:panel>
</div>
注意
我使用Firefox的Inspect元素查看id,并试图让它们指向后面;然而,这是不成功的。此外,当插入无法转换的值(如abc)时,控制台输出确认正确的id
我把这个改成了…:mainForm:toast:0:cal(也尝试了cal\u输入)
我把文字改成…:mainForm:toast:0:text
我也试过..
:主要形式:吐司 包装ui:在id为的h:panelGroup中重复此操作。
切换到h:dataTable
此外,在一些情况下,我可以让输入字段保持空白,但在表单提交时,会填充值。我将ui:repeat替换为h:dataTable,将ace:panel包装为h:column,并删除了所有ace:ajax。ace:dateTimeEntry现在按预期工作
public void dateSelectListener(DateSelectEvent event)
{
this.selectedDate = event.getDate();
}
public void dateTextChangeListener(DateTextChangeEvent event)
{
this.selectedDate = event.getDate();
}