2011-09-21 24 views
2

我通過這個問題,使用單個複選框就從SO How to use <h:selectBooleanCheckbox> in <h:dataTable> to select multiple rows?製作H:dataTable的電池使用^ h編輯:selectbooleanCheckbox鏈接到HashMap中的豆

如上面的問題,我想找出是否我可以使H:數據表格進行編輯,這樣用戶可以一次編輯所有的行和列,並提交

這裏是bean類

public class bean { 
private List<Group> GroupList; 

private Map<Long, Boolean> checked = new HashMap<Long, Boolean>(); 

public void setChecked(Map<Long, Boolean> checked) { 
    this.checked = checked; 
} 

public Map<Long, Boolean> getChecked() { 
    return checked; 
} 


} 

這裏的一部分,是我的JSF頁面

<h:dataTable id="editTable" styleClass = "listtable" value="#{bean.GroupList}" var="group" border="1" first="0" rows="8" width="75%" frame="hsides" rules="all" cellpadding="5" headerClass="tableheading" rowClasses="firstrow, secondrow"> 

    <f:facet name="header"> 
    <h:outputText value="Groups"></h:outputText> 
    </f:facet> 

    <h:column> 
     <f:facet name="header"> 
     <h:outputText value="GroupId"></h:outputText> 
     </f:facet> 
     <h:outputText value="#{group.Id}" rendered=""></h:outputText> 
     <h:inputText value="#{group.Id}" rendered=""/> 
    </h:column> 

    <h:column> 
     <f:facet name="header"> 
     <h:outputText value="GroupName"></h:outputText> 
     </f:facet> 
     <h:outputText value="#{group.Name}" rendered=""></h:outputText> 
     <h:inputText value="#{group.Name}" rendered=""/> 
    </h:column> 


    <h:column> 
     <f:facet name="header"> 
     <h:outputText value="Check to Enable/Disable"></h:outputText> 
     </f:facet> 
     <h:selectBooleanCheckbox value="#{bean.checked[group.Id]}" /> 
    </h:column> 

    </h:dataTable> 

什麼應該保持在呈現屬性,以便當檢查H:inputText的呈現,當未選中H:的outputText呈現?

回答

1

只要綁定到相同的屬性。無論如何,它返回一個Boolean。您可以使用!not來否定它。

<h:outputText value="#{group.Id}" rendered="#{!bean.checked[group.Id]}" /> 
<h:inputText value="#{group.Id}" rendered="#{bean.checked[group.Id]}" /> 
... 
<h:outputText value="#{group.Name}" rendered="#{!bean.checked[group.Id]}" /> 
<h:inputText value="#{group.Name}" rendered="#{bean.checked[group.Id]}" /> 
+0

@ BalusC-謝謝你的迴應。但是當我做這件事時沒有任何事情發生,我試過了!而不是也。 – Sreeram

+0

您必須在選中複選框後提交表單。您的bean必須位於會話(或視圖)範圍內,而不是請求範圍。 – BalusC

+0

不,我沒有提交表單。是我的bean是會話scoped.i應該使其請求作用域? – Sreeram