I have a datatable with checkbox selection within a full page layout.
The datatable selection always returns 0 rows.
If I remove the full page layout, the datatable with checkbox selection works fine.
Any fix?
Options.xhtml
Code: Select all
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title> checkbox selection </title>
</h:head>
<h:form id="myForm" prependId="false">
<p:layout fullPage="true">
<p:layoutUnit position="top" height="140">
<h:outputText value=" " />
</p:layoutUnit>
<p:layoutUnit position="bottom" height="75">
<h:outputText value=" " />
</p:layoutUnit>
<p:layoutUnit position="left" width="200" header="Menú" resizable="true" closable="true" collapsible="true">
<h:outputText value=" " />
</p:layoutUnit>
<p:layoutUnit position="right" width="200" header="Right" resizable="true" closable="true" collapsible="true">
<h:outputText value=" " />
</p:layoutUnit>
<p:layoutUnit position="center" scrollable="true" style="font-size: 10px; border: 0px">
<p:panel id="optdisplay">
<p:dataTable var="var" value="#{myBean.options}"
selection="#{myBean.selectedOptions}">
<p:column selectionMode="multiple" />
<p:column headerText="Variable">
<h:outputText value="#{var.variable}" />
</p:column>
<f:facet name="footer">
<p:commandButton value="TEST" image="ui-icon ui-icon-image"
actionListener="#{myBean.testing}"/>
</f:facet>
</p:dataTable>
</p:panel>
</p:layoutUnit>
</p:layout>
</h:form>
</html>
Code: Select all
package bc.bean;
import bc.ent.Option;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class MyBean implements Serializable {
private List<Option> options;
private Option selectedOption;
private Option[] selectedOptions;
public MyBean() {
options = new ArrayList<Option>();
options.add(new Option("Option A"));
options.add(new Option("Option B"));
options.add(new Option("Option C"));
options.add(new Option("Option D"));
}
public List<Option> getOptions() {
return options;
}
public void setOptions(List<Option> options) {
this.options = options;
}
public Option getSelectedOption() {
return selectedOption;
}
public void setSelectedOption(Option selectedOption) {
this.selectedOption = selectedOption;
}
public Option[] getSelectedOptions() {
return selectedOptions;
}
public void setSelectedOptions(Option[] selectedOptions) {
this.selectedOptions = selectedOptions;
}
public void testing() {
System.out.println("selectedOptions: " + selectedOptions.length);
for (Option opt : selectedOptions) {
System.out.println(opt.getVariable());
}
}
}