[英]Radio and Checkbox in primefaces datatable
我必須將無線電和chechbox控件放在primefaces的2.2.1數據表中,而不是作為選擇模式控件。 我想將控件綁定為支持bean的值。
例如:
A有一些配置列表,在該列表中,一次只能有一個配置(radiobox),但每個配置都可以是活動的(selectbox)。
數據表不必是可編輯的,因為我將在另一個窗口中更改值。 只有控件應該在數據表中。
那可能嗎?
是的,我絕對有可能在我的數據表中一直這樣做。 但是,您需要記住每一行都需要識別。 您可以使用對象或參數對偵聽器執行此操作:
//Backing Bean
@ViewScoped
public class TestBean
{
private ArrayList<Element> elements;
TestBean(){...}
public ArrayList<Element> getElements(){...} //Initialize things here
public class Element
{
/* getter/setter and initialization assumed */
private boolean selected;
private String radioSelection = "one";
private String[] radioChoices = new String[]{"one", "two", "three"};
public void selectMe(ActionEvent evt)
{
System.out.println("Selected -> " + this);
}
}
}
// HTML
<p:dataTable value="testBean.elements" var="element">
<p:column>
<p:commandButton value="Select" actionListener="#{element.selectMe}"
</p:column>
<p:column>
<h:selectBooleanCheckbox value="#{element.selected}" />
</p:column>
<p:column>
<h:selectOneRadio value="#{element.radioSelection}">
<f:selectItems
value="#{element.radioChoices}"
var="item"
itemLabel="#{item}"
itemValue="#{item}"
/>
</h:selectOneRadio>
</p:column>
</p:dataTable>
您可以(並且可能希望)使用元素中的ID或您喜歡的模式的參數。 關鍵是要記住每一行都有自己的id,你要創建一組元素,而不是單個元素。 這就是你最有可能被束縛的地方。 看看每個按鈕是如何成為一等公民,你應該能夠隨心所欲地使用它。
編輯:我添加了一個Radio / Checkbox示例。 聽起來你是JSF的新手,所以我建議你閱讀SelectItem類並運行組合框等工作方式。 要記住的關鍵(正如我在上面強調的那樣)是你渲染了很多組件,所以如果你共享一個值,它很容易導致你不想要的行為。 封裝所有內容並且通常處於良好狀態。)您還可以將綁定視為可能的解決方案。 這一切都取決於你寧願編寫代碼的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.