请找到我的代码下面的p:datatable有h:commandlink作为其列之一:
<p:dataTable id="listTable" value="#{listBean.lazyDatalist}"
var="list" paginator="true" paginatorPosition="top" rows="10"
rowIndexVar="rowIndex"
rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'rowStyleOdd' : 'rowStyleEven'}"
lazy="true">
<p:ajax event="page" listener="#{listBean.searchLazyData}"/>
<p:column style="width:3%;" headerText="#{msg['userlist.dt.srNo']}">
<h:outputText value="#{list.orderCount}"></h:outputText>
</p:column>
<p:column style="width:7%;"
headerText="#{msg['userlist.dt.EmployeeID']}">
<h:outputText value="#{list.employeeID}"/>
</p:column>
<p:column style="width:12%;"
headerText="#{msg['userlist.dt.Name']}">
<h:outputText value="#{list.employeeName}"></h:outputText>
</p:column>
<p:column headerText="#{msg['userlist.dt.actionReq']}">
<h:commandLink value="#{list.actionRequired}" action="#{listBean.getDetails}" styleClass="linkStyle"></h:commandLink>
</p:column>
</p:dataTable>
我想访问支持Bean ListBean中h:commandLink被单击使用action="#{ListBean。
我的Backingbean是会话作用域,我们使用jsf 2.1.7 Mojarra。
但最重要的是,看看PrimeFaces展示中的第一个选择示例http://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml
将选定的行作为参数传递给方法,例如
<h:commandLink value="#{list.actionRequired}" action="#{listBean.getDetails(list)}" styleClass="linkStyle"></h:commandLink>
,修改getDetails
接受元素类型为listBean.lazyDatalist
的参数
var
包含用于填充每行的对象。你可以像#{listBean.getDetails(list)}
一样在动作中传递它。不要忘记将这个参数添加到bean方法中。
顺便说一句:list
是非常误导的。您最好将其命名为element
,或者与其具体的实体名称一起命名,例如employee
。你的团队会感激你的。