gpt4 book ai didi

javascript - 在 dataTable rowSelect 上调用 History.pushState

转载 作者:行者123 更新时间:2023-11-28 00:32:49 25 4
gpt4 key购买 nike

我使用的是 PrimeFaces 5.1,当用户使用以下代码单击 p:dataTable 行时,我会调用 history.pushState:

<p:dataTable value="#{associateBean.scenarios}" 
selectionMode="single"
selection="#{associateBean.selectedScenarioViewBean}"
var="scenarioViewBean" rowKey="#{scenarioViewBean.id}">
<p:ajax event="rowSelect"
listener="#{associateBean.onScenarioRowSelect}"
oncomplete="history.pushState('','','test#{scenarioViewBean.id}')"
update="@form"/>
<p:column>
<h:outputText value="#{scenarioViewBean.name}"/>
</p:column>
</p:dataTable>

如您所见,我正在尝试将 scenarioViewBean.id 值传递给我的 pushState 调用。

问题是 #{scenarioViewBean.id} 不返回任何内容,因此 JavaScript 在 URL 中推送“test”而不是“test123”。

如何解决这个问题?

最佳答案

无需使事情复杂化,保留 rowSelect ajax 事件并传递 Id,如下所示:

PF('dataTableWV').selection[0]

根据您的问题,最终结果应如下所示:

<p:ajax event="rowSelect"
listener="#{associateBean.onScenarioRowSelect}"
oncomplete="history.pushState('','','test'+PF('dataTableWV').selection[0]"
update="@form"/>

注意:dataTableWV 是 dataTable widgetVar

关于javascript - 在 dataTable rowSelect 上调用 History.pushState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com