运行页面时,我的DataTable出现问题,所有行都是自动选中的。有人能告诉我问题出在哪里吗?我不知道如何解决这个问题..
我的数据表页面
<ui:composition template="../lecturerTemplates/layout.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="content">
<h:form id="form">
<p:growl id="messages" showDetail="true" />
<p:contextMenu for="dataTable">
<p:menuitem value="Delete" update="dataTable"
icon="ui-icon-close" actionListener="#{examMB.deleteExam}" />
</p:contextMenu>
<p:dataTable id="dataTable" var="exam" styleClass="DataTableUsers"
value="#{examMB.examList}" rows="5"
rowKey="#{examMB.exam_id}" selection="#{examMB.selectedExam}"
selectionMode="single" editable="true" paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:ajax event="rowEdit" listener="#{examMB.onEdit}"
update=":form:messages, :form:dataTable" />
<p:column sortBy="name" filterBy="name" id="name" headerText="Name">
<h:outputText value="#{exam.name}" />
</p:column>
<p:column sortBy="subject" id="subject"
headerText="Subject">
<h:outputText value="#{exam.subject}" />
</p:column>
<p:column sortBy="examStart" id="examStart"
headerText="Exam Start">
<h:outputText value="#{exam.examStart}" />
</p:column>
<p:column sortBy="examStop" id="examStop"
headerText="Exam Stop">
<h:outputText value="#{exam.examStop}" />
</p:column>
<p:column headerText="Informations">
<h:outputText value="#{exam.info}" />
</p:column>
<p:column headerText="Ratings">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{exam.ratings}" />
</f:facet>
<f:facet name="input">
<h:inputText value="#{exam.ratings}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column style="width:6%" headerText="Edit">
<p:rowEditor />
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
感谢advence! 托米!
答案 0 :(得分:4)
我认为你不明白'rowKey'的作用。
您必须为'rowKey'指定唯一且非空的属性才能使选择工作。
更改此
value="#{examMB.examList}" var="exam" rowKey="#{examMB.exam_id}"
到这个
value="#{examMB.examList}" var="exam" rowKey="#{exam.id}"