jsf - 选择一个panelGrid并设置对象
问题描述
我有很多panelGrid,我想在单击panelGrid 时打开一个对话框。
问题总是选择最后一个panelGrid。
索引.xhtml
<p:dataGrid var="object" value="#{vc.objects}"
layout="grid" id="dataGridObject">
<h:panelGrid columns="1" onclick="rc()">
<h:outputText value="#{object.name} " />
<p:remoteCommand name="rc" update="formX"
oncomplete="PF('dlgDetails').show()" action="#{vc.updateSelectObject(object)}"/>
</h:panelGrid>
</p:dataGrid>
视图控制器.java
private Object selectObject;
public void updateSelectObject(Object object){
setSelectObject(object);
}
public Object getSelectObject() {
return selectObject;
}
public void setSelectObject(Object selectObject) {
this.selectObject = selectObject;
}
解决方案
你为什么不尝试另一种方法。在这种情况下,使用 dataGrid 您可以将 outputText 和 remoteCommand 替换为 commandButton,并且您可以设置按钮的样式,使其看起来像一个面板。
<p:dataGrid var="object" value="#{vc.objects}"
layout="grid" id="dataGridObject" columns="1">
<p:commandButton value="#{object.name}"
actionListener="#{vc.updateSelectObject(object)}" process="@this"
update="formX" oncomplete="PF('dlgDetails').show()" />
</p:dataGrid>
推荐阅读
- python - 回文链表,代码未通过测试用例
- firefox - Firefox 中“恢复上一个会话”的用户偏好 关于:配置
- android - Android:ValueAnimator 闪色这么快?
- python - 使用 Cython 和 Pandas 读取 TXT 文件
- javascript - 不确定如何在此应用中包含启动/停止计时器功能
- firebase - 在保留 StreamProvider 的同时,无法将 Flutter Firebase_Auth 从版本 0.15 更新到 0.18
- python - 程序在 if 语句后自动结束
- c# - 使用图片框 C# windows 窗体创建 Snake 游戏
- swift - 快速播放某种类型的音频文件时出错
- ios - Obj-C - 按钮点击上的呼叫号码崩溃应用程序?