代码之家  ›  专栏  ›  技术社区  ›  CoolBeans Jake

从中获取列值ice:数据表另一列的验证程序

  •  1
  • CoolBeans Jake  · 技术社区  · 14 年前

    我的ice:dataTable外观就像下图:-

    <ice:dataTable id="someTbl" var="someVar" value="#{someBean.someList}" >
       <ice:column>  
           <f:facet name="header"> <ice:outputText value="#{msgs.tblCol1}"> </f:facet>
           <ice:outputText value="#{someVar.name}"/>
        </ice:column>
       <ice:column>  
           <f:facet name="header"> <ice:outputText value="#{msgs.tblCol2}"> </f:facet>
            <ice:selectInputDate id="startCal" value="#{someVar.startTime}"
                     renderAsPopup="true" renderYearAsDropdown="true"    
                     renderMonthAsDropdown="true" partialSubmit="true" >
                     <f:convertDateTime pattern="MM/dd/yyyy HH:mm" type="date" timeZone="EST"/> 
            </ice:selectInputDate>
        </ice:column>
        <ice:column>  
           <f:facet name="header"> <ice:outputText value="#{msgs.tblCol3}"> </f:facet>
            <ice:selectInputDate id="endCal" value="#{someVar.endTime}"
                     renderAsPopup="true" renderYearAsDropdown="true"    
                     renderMonthAsDropdown="true" partialSubmit="true" validator="#{someBean.validateEndtime}">
                     <f:convertDateTime pattern="MM/dd/yyyy HH:mm" type="date" timeZone="EST"/> 
            </ice:selectInputDate>
        </ice:column>
    </ice:dataTable> 
    

    当调用行上第二个日历(id“endCal”)上的验证器时,我想在我的backingbean中获取该行上第一个日历(id“startCal”)的值。有没有办法做到这一点?我在想冰:但是我注意到我只能得到所选对象的rowId,这意味着我必须遍历“someBean.someList在验证程序方法中查找该项的值。

    1 回复  |  直到 14 年前
        1
  •  1
  •   BalusC    14 年前

    首先将第一个输入绑定到bean:

    <ice:selectInputDate id="startCal" binding="#{someBean.startCalComponent}" ... >
    

    private UIInput startCalComponent; // +getter+setter
    

    SomeBean#validateEndtime() 方法do:

    Date startTime = (Date) startCalComponent.getValue();