JSF将Parameter传递给dataTable值

时间:2015-07-10 14:04:23

标签: jquery jsf-2 datatable xhtml parameter-passing

我对数据表的输入:List<SelectionDto<PersonContainer>>

PersonContainer包含:List<QuestionContainer>

QuestionContainer包含:Date date1, Date date2

通常的话:每个人都有questionContainer的列表(通常只有1个容器)。此容器中的2个问题是日期。必须填写其中一个日期。也许两者都被填满了。

我有3 dataTables,第一个显示给定输入。在最后一列是一个执行javascript的按钮,它启动一个包含第二个和第三个dataTable的对话框。 2. dataTable应显示第一个日期(如果存在) 3. dataTable应显示第二个日期(如果存在)

这个表格运行正常:

<t:dataTable id="tableId" value="#{value}" var="dto" rowIndexVar="row">
      <ui:insert />
      <h:column>...</h:column>
      ...
      <h:column>
        <h:outputText value="#{dto.src.person.quesions[0].date1}" />
        <h:commandLink value="Extend" styleClass="button">
          <f:ajax render=":messages" onevent="showDialog" />
          <f:setPropertyAcionListener target="#{Bean.currentRow}" value="#{row}" />
        </h:commandLink>
</t:dataTable>

问题在于:[Bean.currentRow]始终为0.我调试了它,在Bean中,值以正确的方式传递,但不在dataTables

<h:panelgroup id="dialog" layout="block" styleClass="dN">
  <h:dataTable value="#{value[Bean.currentRow].src.person.questions}" var="questions" rendered="#{not empty value[Bean.currentRow].src.person.questions[0].date1}">
  <h:column>
    <h:outputText value="#{questions.date1}" />
  </h:column>
  <h:column>
    <h:inputText value="#{questions.date1}" styleClass="datalizeMe" />
  </h:column>
  </h:dataTable>
  <h:dataTable>
    //same with date2
  </h:dataTable> 
</h:panelGroup>

因此,当我单击“扩展”按钮时,会打开一个窗口,它会显示列表中第一个人的日期,而不是我点击的按钮上的人。 如何将行索引传递给第二个和第三个dataTable的value[Index]

请用德语或英语答案:)

0 个答案:

没有答案