日历在数据JSF 2.0中

calendar in datable JSF 2.0

本文关键字:JSF 数据 日历      更新时间:2023-09-26

我有一个数据表,它有一个记录列表,我的要求是为其中的一列包括一个日历。我已经为日历编写了一个Javascript,它在单击日历图像时获取日期并放置在相应的输入字段中。现在我面临的问题是日历,我已经放置在只显示数据表的第一行。我的日历是基于"id"属性获取的,我如何获得每行的id ?下面是我尝试的代码

<h:dataTable id="d" value="#{Class.bean.itemList}" var="iBean" >                        
 <h:column>
  <div class="demo">
   <f:facet name="header">
    <h:outputText style=""value="Date" />
   </f:facet>
   <h:inputText id="dDate" value="#{iBean.date}" />
    <input style="display:none" type="text" id="datepicker" onchange="fetchDate(this);hiddenButtonClick(this)" >
     <h:commandButton style="display:none" id="hiddenitemDateCalc"  value="get date" action="#{Class.itemDateFromUI}" >
     </h:commandButton>
  </div>
 </h:column>
</h:dataTable>

您的示例以无效的HTML结束。所有输入字段获得相同的ID。您需要使用<h:inputText>而不是<input>,这样JSF将为每一行生成一个惟一的ID。

或者,更简单的是,获取一个带有可重用日历组件(以及更多)的组件库。

  • 战斧与<t:inputCalendar>
  • RichFaces with <rich:calendar>
  • PrimeFaces with <p:calendar>

与具体问题无关,<f:facet>实际上应该在<div>之外声明