在 PrimeFaces 数据 table 中禁用选择但显示先前选择的值
Disable selection in a PrimeFaces data table but show previously selected value
我想在 PrimeFaces v8.0 数据中禁用选择 table,但显示之前选择的值。
这是我的最小示例项目
<?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
xml:lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Disable table selection</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="1">
<p:dataTable var="value"
value="#{disabledTableSelectionBean.values}"
selection="#{disabledTableSelectionBean.selectedValue}"
disabledSelection="true"
rowKey="#{value}">
<p:column selectionMode="single" width="15" />
<p:column headerText="Value">
<h:outputText value="#{value}" />
</p:column>
</p:dataTable>
</h:panelGrid>
</h:form>
</h:body>
</html>
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Named
@ViewScoped
public class DisabledTableSelectionBean implements Serializable {
private List<String> values;
private String selectedValue = "6";
@PostConstruct
public void initialize() {
values = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
}
}
显示的table是这样的
Disabled selection in PrimeFaces data table
我想要的是,单选按钮被禁用,但为了显示所选值“6”,我在后端 bean 中进行了选择。
有没有办法让它工作?
您的代码在 Primefaces 6.2 上运行良好,在 8.0 上您可以尝试使用以下代码:
<p:dataTable var="value" value="#{disabledTableSelectionBean.values}"
selection="#{disabledTableSelectionBean.selectedValue}"
rowKey="#{value}">
<p:column selectionMode="single" width="15"
styleClass="ui-state-disabled" />
<p:column headerText="Value">
<h:outputText value="#{value}" />
</p:column>
</p:dataTable>
基本上,您删除禁用选择并直接在单选列上添加样式 class。
我想在 PrimeFaces v8.0 数据中禁用选择 table,但显示之前选择的值。
这是我的最小示例项目
<?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
xml:lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Disable table selection</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="1">
<p:dataTable var="value"
value="#{disabledTableSelectionBean.values}"
selection="#{disabledTableSelectionBean.selectedValue}"
disabledSelection="true"
rowKey="#{value}">
<p:column selectionMode="single" width="15" />
<p:column headerText="Value">
<h:outputText value="#{value}" />
</p:column>
</p:dataTable>
</h:panelGrid>
</h:form>
</h:body>
</html>
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Named
@ViewScoped
public class DisabledTableSelectionBean implements Serializable {
private List<String> values;
private String selectedValue = "6";
@PostConstruct
public void initialize() {
values = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
}
}
显示的table是这样的
Disabled selection in PrimeFaces data table
我想要的是,单选按钮被禁用,但为了显示所选值“6”,我在后端 bean 中进行了选择。
有没有办法让它工作?
您的代码在 Primefaces 6.2 上运行良好,在 8.0 上您可以尝试使用以下代码:
<p:dataTable var="value" value="#{disabledTableSelectionBean.values}"
selection="#{disabledTableSelectionBean.selectedValue}"
rowKey="#{value}">
<p:column selectionMode="single" width="15"
styleClass="ui-state-disabled" />
<p:column headerText="Value">
<h:outputText value="#{value}" />
</p:column>
</p:dataTable>
基本上,您删除禁用选择并直接在单选列上添加样式 class。