jsf - 如何通过切换监听器更改表格元素
问题描述
我有一个 primefaces 11 项目。在我的网站上有一个数据表,其中包含我的自定义类的一些元素。一个属性是一个活动标志,它在我的表中由一个切换开关表示。如果您想更改记录的任何属性,您必须使用可以正常工作的更改按钮。但是我认为如果您可以即时切换激活会更容易。所以我用一个ajax监听器做了一个切换开关。该表如下所示:
<p:dataTable id="dt-queries" widgetVar="dtQueries" reflow="true"
showGridlines="true" size="small" var="querie"
value="#{abfrageHandler.abfragen}" rowKey="#{querie.pk}" >
<p:column headerText="Abfrage">
<h:outputText value="#{querie.name}" />
</p:column>
<p:column headerText="Zyklus">
<h:outputText value="#{querie.zyklus.displayName}" />
</p:column>
<p:column headerText="Typ">
<h:outputText value="#{querie.typ.displayName}" />
</p:column>
<p:column headerText="System">
<h:outputText value="#{querie.refSystem}" />
</p:column>
<p:column headerText="Aktiv">
<p:toggleSwitch id="active" value="#{querie.active}" >
<p:ajax listener="#{abfrageHandler.toggleActive}"/>
</p:toggleSwitch>
</p:column>
<p:column exportable="false">
<p:commandButton icon="pi pi-search"
actionListener="#{abfrageHandler.startAbfrage(querie)}"
styleClass="edit-button rounded-button ui-button-success"
process="@this">
</p:commandButton>
<p:commandButton icon="pi pi-pencil"
update="abfrageForm:manage-queries-content"
oncomplete="PF('manageQueriesDialog').show()"
styleClass="edit-button rounded-button ui-button-success"
process="@this">
<f:setPropertyActionListener value="#{querie}"
target="#{abfrageHandler.selected}" />
<p:resetInput target="abfrageForm:manage-queries-content" />
</p:commandButton>
<p:commandButton class="ui-button-warning rounded-button"
icon="pi pi-trash" process="@this"
oncomplete="PF('deleteQuerieDialog').show()">
<f:setPropertyActionListener value="#{querie}"
target="#{abfrageHandler.selected}" />
</p:commandButton>
</p:column>
</p:dataTable>
目前我的 toggleActive 方法如下所示:
public void toggleActive(AjaxBehaviorEvent event) {
System.out.println("Funktion called");
Object a = event.getSource();
a.toString();
}
我遇到了事件类型的问题,因为所有primefacesevents 都不起作用,该函数从未被ToggleEvent 或AbstractAjaxBehaviorEvent 调用。如果我可以看到发生了一些事情,但我无法确定它是为谁发生的,所以我无法直接坚持更改。
你能帮我如何识别当前记录吗?
解决方案
推荐阅读
- python - Django 管理面板 css 在数字海洋服务器中未按预期工作
- javascript - Chrome 扩展程序 | 单击按钮时将内容脚本从外部源加载到 chrome 扩展
- recaptcha - 如何获取 Contact Form 7 的密钥 reCaptcha
- reactjs - 如何使用 react.js 前端的 fetch 或 XMLHttpRequest 管理烧瓶登录?
- saml - 对 API 调用使用 SAML 安全上下文
- html - 图标需要用 :before 伪 css 元素包裹两行
- flutter - 如何使 PDF 中的表格跨越 Flutter 应用程序中的多个页面?
- python - 使用字典值更新查询集
- node.js - AdminBro 捆绑“没有这样的文件或目录”错误
- c# - C# Linq 从模型状态中删除错误项不起作用