在没有绑定属性的情况下单击h:CommandLink,访问Backing Bean中p:datatable的特定行



请找到我的代码下面的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。你的团队会感激你的。

最新更新