我想在LazyLoading Datatable中设置这样的东西,我无法使用下面的代码。
<p:dataTable var="studyPlanList" value="#{editBean.lazyModel}"
paginator="true" rows="10"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="5,10,15" selectionMode="single"
selection="#{editBean.selectedStudyPlan}"
id="studyPlanTable">
<p:ajax event="rowSelect" listener="#{editBean.onRowSelect}" update=":studyPlanEditForm:display" >
</p:ajax>
<p:column headerText="StudyPlan" sortBy="#{studyPlanList.name}" filterBy="#{studyPlanList.name}">
<h:outputText value="#{studyPlanList.name}"/>
</p:column>
</p:dataTable>
而不是p:列,如果它是h:链接它正在工作,我想达到类似的结果;请帮助。
答案 0 :(得分:1)
这来自f:setPropertyActionListener
上的facelet代码文档:
在与之关联的UIComponent上注册ActionListener实例 最近的父UIComponent自定义操作
因此,您需要触发操作才能使其正常工作。这可以是h:commandButton
或h:commandLink
。这是一个简单的例子:
<h:commandButton action="#{editBean.submitAction}" value="Select">
<f:setPropertyActionListener target="#{editBean.name}"
value="#{studyPlanList.name}" />
</h:commandButton>
由于您使用的是Primefaces,因此您可以查看p:dataTable
的行选择功能。这是一个example from the showcase。
<强>更新强>
选择的类型应与row元素的类型相同。我从您的代码中看到selection="#{editBean.selectedStudyPlan.name}"
但它应该是
selection="#{editBean.selectedStudyPlan}"