【发布时间】:2016-12-12 08:04:02
【问题描述】:
所以我对 jsf 很陌生,我希望仅当我的支持 bean 中的属性设置为 true 时才显示确认对话框。我有这样的东西。
我有一个可以多选的数据表。当您选择表中的项目时,会在支持 bean 中设置一个属性来保存这些项目。
基本上,“showDeleteDialog()”方法的作用是检查列表中是否有任何项目被选中,如果删除按钮被选中,它才会显示确认对话框。
所以我想要发生的是,一旦有人从数据表中选择了项目,点击删除按钮。出现确认对话框,然后删除所选项目。如果用户没有从数据表中选择项目。我希望删除按钮不显示确认对话框。
<p:commandButton
styleClass="referralTaskDeleteBtn"
id="deleteButton"
value="#{loc['RegionAdmin.TaskType.DeleteButton']}"
icon="ui-icon-close"
update="deleteConfirmDialog,@this"
rendered="true"
action="#{referralTasksController.showDeleteDialog()}"
oncomplete="if (#{referralTasksController.displayDeleteDialog}) { PF('confirmDailogWidget').show(); }"
style="visibility: #{referralTasksController.toggleDeleteAndCompleteButtons()};"
disabled="#{not referralTasksController.enableEditButtons()}"
>
</p:commandButton>
和后台bean方法
public void showDeleteDialog(){
if (selectedReferralTasks.size()!=0)
this.displayDeleteDialog = true;
}
任何时候我点击它,我的对话框只会在第二次点击后打开。任何想法为什么?如果需要,我将包含该对话框。任何帮助将不胜感激。
<p:outputPanel id="confirmationDailogOutputPanel">
<p:confirmDialog
id="deleteConfirmDialog"
header="Confirm Delete"
message="Are you sure you want to delete the selected Tasks"
showEffect="fade" hideEffect="fade"
widgetVar="confirmDailogWidget"
>
<p:commandButton value="#{loc['RegionAdmin.TaskType.DeleteButton']}" styleClass="confirmDialogDeleteButton" icon="ui-icon-check"
action="#{referralTasksController.deleteTasks()}"
oncomplete="PF('confirmDailogWidget').hide();"
update=":#{p:component('NoticePanel')},referralsTaskList,completeButton,deleteButton"
/>
<p:commandButton value="#{loc['RegionAdmin.TaskType.CancelButton']}"
styleClass="confirmDialogCancelButton"
icon="ui-icon-close"
oncomplete="PF('confirmDailogWidget').hide();"/>
</p:confirmDialog>
</p:outputPanel>
【问题讨论】:
-
老实说,我不明白你的问题,我唯一的想法是尝试在你的条件下输出,看看他是否第一次进入
-
对不起,我会尽量解释清楚
标签: jsf button primefaces command