2014-10-10 53 views
3

我需要在p:dialog中的outputText中为下面的值绑定进行解释。我不清楚这一点,并且有任何其他方法。当选择模式=多重时,如何在数据表中进行值绑定

在我的示例中: 我试过了,如果我选择单个或多个复选框,该值会被绑定,但是当我单击根目录复选框用于选择所有复选框时,存储在后端。

<p:dataTable id="checkboxDT" 
      var="car" 
      value="#{dtSelectionView.cars6}" 
      selection="#{dtSelectionView.selectedCars}" 
      rowKey="#{car.id}" 
      style="margin-bottom:0"> 
    <f:facet name="header"> 
     Checkbox 
    </f:facet> 
    <p:column selectionMode="multiple" 
       style="width:16px;text-align:center"/> 
    <p:column headerText="Id"> 
     <h:outputText value="#{car.id}" /> 
    </p:column> 
    <p:column headerText="Year"> 
     <h:outputText value="#{car.year}" /> 
    </p:column> 
    <p:column headerText="Brand"> 
     <h:outputText value="#{car.brand}" /> 
    </p:column> 
    <p:column headerText="Color"> 
     <h:outputText value="#{car.color}" /> 
    </p:column> 
    <f:facet name="footer"> 
     <p:commandButton process="checkboxDT" 
         update=":form:multiCarDetail" 
         icon="ui-icon-search" 
         value="View" 
         oncomplete="PF('multiCarDialog').show()" /> 
    </f:facet> 
</p:dataTable> 



<p:dialog header="Selected Cars" 
      widgetVar="multiCarDialog" 
      modal="true" 
      showEffect="fade" 
      hideEffect="fade" 
      resizable="false" 
      width="200"> 
    <p:outputPanel id="multiCarDetail" style="text-align:center;"> 
     <ui:repeat value="#{dtSelectionView.selectedCars}" 
        var="car"> 

      <h:outputText value="#{car.id} - #{car.brand}" 
          style="display:block"/> 
     </ui:repeat> 
    </p:outputPanel> 
</p:dialog> 

+0

goku 2014-10-13 06:26:04

回答

1

因为更新用来您应该更新checkboxDT确定组件的ID进行更新(使用更新的值刷新来自服务器)。如果您不更新checkboxDT,则选定的车辆也不会更新。

<p:commandButton process="checkboxDT" 
       update="checkboxDT,:form:multiCarDetail" 
       icon="ui-icon-search" 
       value="View" 
       oncomplete="PF('multiCarDialog').show()" /> 
+0

你可以解释一下value =”#{car.id} - #{car.brand}“中给出的值绑定。只能得到第一个值,即(car.id)。 – goku 2014-10-13 06:28:51

+0

您是否在selectedCars清单中检查品牌价值? – wittakarn 2014-10-13 07:35:01

+0

当我们给出选择模式是多个时,我们可以使用p:ajax rowselect event for datatable – goku 2014-10-13 09:33:45

相关问题