我正试图使用素数面从dataTable打开一个新窗口。我尝试过不同的选择:
-
h: commandLink
<h:form id="form" target="_blank"> <p:dataTable id="Table" var="var_row" value="#{bean.table}" sortBy="tableId" > <p:column> <h:commandLink action="#{bean.goToPage}" value="Open Page" onblur="this.form.target='_self'"> <f:setPropertyActionListener value="#{var_row}" target="#{bean.rowSelected}" /> </h:commandLink> </p:column> </p:dataTable> </h:form>
2.p:commandLInk
<h:form id="form" target="_blank">
<p:dataTable id="Table" var="var_row" value="#{bean.table}" sortBy="tableId" >
<p:column>
<p:commandLink action="#{bean.goToPage}" value="Open Page"
onblur="this.form.target='_self'"
process="@this" ajax="false" target="_blank">
<f:setPropertyActionListener value="#{var_row}" target="#{bean.rowSelected}" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
它有效,但不正确。我的意思是,我打开了新页面,但原始页面变得毫无用处,当你点击这些页面时,这些页面中的所有方法都不会被调用。
以前有人试验过这个吗?有解决这个问题的办法吗?
我尝试过,但在使用"setPropertyActionListener"的同时,仍然无法在新窗口中打开"commandLink"。我认为您必须修改底层Primefaces javascript才能在新窗口中打开(我没有尝试)。
您可以尝试传递参数参数。