0
我有一個JSF h:datatable
使用數據行:如何在JSF頁面中單擊行時打開新頁面?
<h:dataTable id="dataTable" value="#{SessionsController.dataList}" binding="#{table}" var="item">
<!-- Check box -->
<h:column>
<f:facet name="header">
<h:outputText value="Select" />
</f:facet>
<h:selectBooleanCheckbox onclick="highlight(this)" value="#{SessionsController.selectedIds[dataItem.id]}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="№" actionListener="#{SessionsController.sort}">
<f:attribute name="№" value="№" />
</h:commandLink>
</f:facet>
<h:outputText value="#{table.rowIndex + SessionsController.firstRow + 1}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Account Session ID" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Account Session ID" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.aSessionID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="User ID" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="User ID" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.userID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity Start Time" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity Start Time" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activityStart}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity End Time" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity End Time" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activityEnd}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activity}" />
</h:column>
</h:dataTable>
我想給當他點擊一行打開一個新頁面的用戶的能力。 我發現JavaScript代碼是有用的:
$("table#dataTable tbody tr").click(function() {
window.location = $(this).find("a:first").attr("href");
});
的問題是,我需要它會通過JavaScript使用點擊行何時打開新頁面,並通過數據的JSF標籤。在這個例子中,href用於導航到新窗口。我需要JSF標籤,可以用於相同的目的。有沒有合適的JSF標籤?
祝
是否有替代方法來打開新頁面?例如,當我點擊一行來從託管bean調用Java方法時,可能會發生這種情況。 Java方法將返回例如「123acb」。我將在faces-config.xml中將其配置爲導航規則。 –
並非沒有很好的JavaScript負載。例如PrimeFaces的''更容易使用。另請參閱http://www.primefaces.org/showcase/ui/datatableRowSelectionInstant.jsf –
BalusC
好吧,我更喜歡使用純JSF。你能想出任何可能的方法來實現我的目標嗎? –