【发布时间】:2014-09-05 11:40:39
【问题描述】:
这是我在数据表列中的命令按钮,它的任务是删除关联的行对象:
<p:column style="width:6%;text-align:center"
headerText="Delete">
<p:commandButton icon="ui-icon-close"
title="Delete release #{release.name}"
actionListener="#{releaseBean.deleteRelease(release)}"
process="@this" update=":display :form2:releaseList">
<p:confirm
header="Confirm deleting release #{release.name}"
message="Are you really sure you want to delete release #{release.name}?"
icon="ui-icon-alert" />
</p:commandButton>
</p:column>
我希望在删除确认消息中显示版本名称(您确定要删除版本“XYZ”吗?).. 但问题是版本名称“XYZ”不是显示在<p:confirm>的标题中,也没有在消息中;但它显示在<p:commandButton> 标题中。
我做错了什么?谢谢。
编辑:
我尝试修改commandButton并添加setPropertyActionListener:
<p:commandButton icon="ui-icon-close"
title="Delete release #{release.name}"
actionListener="#{releaseBean.deleteRelease(release)}"
process="@this" update=":display :form2:releaseList">
<f:setPropertyActionListener
target="#{gestionReleaseBean.selectedRelease}"
value="#{release}" />
<p:confirm
header="Confirm deleting release #{release.name}"
message="Are you really sure you want to delete release #{release.name}?"
icon="ui-icon-alert" />
</p:commandButton>
我在 bean 中添加了属性 selectedRelease,它是 getter/setter。
没用……
【问题讨论】:
-
commandButton 本身是否经过 ajax 更新,即 commandButton 的
update属性是否包含嵌入它的组件的 id? -
更新涉及
<p:growl id="display">和整个<p:datatable>(其中是按钮),以抑制新删除的行。为什么? -
是否可以使用带有 bean 属性的独立
dialog或confirmDialog而不是带有全局confirmDialog的p:confirm? -
似乎你偶然发现了一个可能的错误@Siho。我自己测试并确认过,
<p:confirm/>无法评估数据表的局部变量。它似乎只能评估页面构建期间可用的值,而不是页面渲染期间可用的值。这意味着只有在呈现数据表之前,支持 bean 中可用的值才会进入标记。您可以自己检查生成的 javascript,以确认负责弹出窗口本身的 js 具有空值,而您的var应该是 -
@rion18 怎么做,你的意思是这样(来自 PF 用户指南)
<h:form> <p:commandButton type="button" onclick="PF('cd').show()" /> <p:confirmDialog message="Are you sure about destroying the world?" header="Initiating destroy process" severity="alert" widgetVar="cd"> <p:commandButton value="Yes Sure" actionListener="#{buttonBean.destroyWorld}" update="messages" oncomplete="PF('cd').hide()"/> <p:commandButton value="Not Yet" onclick="PF('cd').hide();" type="button" /> </p:confirmDialog> </h:form>
标签: jsf primefaces dialog confirm commandbutton