我正在使用带有可点击行的primefaces数据表,我需要找到如何从备用bean设置所选行的方法。
我的数据表定义是:
<p:dataTable id="cablePathTable" var="cablePath" value="#{commonTableBean.cableLazyModel}" rows="100"
selectionMode="single" selection="#{commonTableBean.selectedCablePathTblRow}"
rowIndexVar="rowIndex" widgetVar="datatableVar"
emptyMessage="---">
<p:ajax event="rowSelect" process="@this" update=":form:portFieldset" />
<p:column headerText="No">
<h:outputText value="#{cablePath.column1}" />
</p:column>
<p:column headerText="Port A">
<h:outputText value="#{cablePath.column4}" />
</p:column>
<p:column headerText="Port B">
<h:outputText value="#{cablePath.column5}" />
</p:column>
我尝试了以下方法,但没有成功。 在支持bean中我添加了方法:
public void test(){
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:cablePathTable");
dataTable.setRowIndex(2);
}
我已经在XHTML页面添加了测试按钮:
<p:commandButton process="@this" update=":form:cablePathTable" value="set2row" action="commonTableBean.test"/>
但是nothig在数据表上发生了变化,选择没有改变......
请问任何想法如何解决这个问题?
答案 0 :(得分:8)
只需将值设置为selection="#{commonTableBean.selectedCablePathTblRow}"
。
public void test(){
selectedCablePathTblRow = cablepath;
}