[英]p:commandButton action not working in p:confirmDialog
我有一個功能,我必須通過我的確認對話框調用我的托管bean,這是用於刪除按鈕。 當用戶點擊刪除按鈕有彈出一個確認對話框onclick
“是”我的親戚托管bean應該被調用。 但我無法做到。
<p:commandButton id="Delete" action="#{tbeanId.delete}" icon="ui-icon ui-icon-trash"
value="Delete" title="GDeleteButton" ajax="false" onclick="PF('groupDeleteConfirm').show();" type="button">
<p:confirm header="Delete Record" message="Are you sure about deleting this record?" icon="ui-icon-alert"/>
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade" hideEffect="explode" widgetVar="groupDeleteConfirm">
<p:commandButton title="GDelYesButton" value="Yes" oncomplete="PF('groupDeleteConfirm').hide()" " />
<p:commandButton title="GDelNoButton" value="No" onclick="PF('groupDeleteConfirm').hide()" type="button" />
</p:confirmDialog>
當你使用帶有global="true"
的p:confirmDialog
時,這兩個styleClasses確認/取消按鈕(有點不直觀):
styleClass="ui-confirmdialog-yes"
styleClass="ui-confirmdialog-no"
然后將調用該動作並自動發生show()/ hide()。 Ajax在主按鈕上應該是真的,你不需要type="button"
所以總而言之它會更簡單:
<p:commandButton id="delete"
action="#{trafficExpenseItemsMBean.deleteExpenseItemsGroup}"
icon="ui-icon ui-icon-trash"
value="Delete"
title="GDeleteButton">
<p:confirm header="Delete Record"
message="Are you sure about deleting this record?"
icon="ui-icon-alert"/>
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">
<p:commandButton title="GDelYesButton" value="Yes" styleClass="ui-confirmdialog-yes"/>
<p:commandButton title="GDelNoButton" value="No" styleClass="ui-confirmdialog-no" />
</p:confirmDialog>
另一種選擇是使其成為非全球性的。 然后你需要將動作移動到是按鈕,將消息移動到p:confirmDialog,如下所示
<p:commandButton id="delete"
icon="ui-icon ui-icon-trash"
value="Delete"
title="GDeleteButton"
onclick="PF('groupDeleteConfirm').show()">
</p:commandButton>
<p:confirmDialog message="Are you sure about deleting this record?"
showEffect="fade"
hideEffect="explode"
widgetVar="groupDeleteConfirm">
<p:commandButton title="GDelYesButton"
value="Yes"
action="#{trafficExpenseItemsMBean.deleteExpenseItemsGroup}"
oncomplete="PF('groupDeleteConfirm').hide()"
update=":growl"/>
<p:commandButton title="GDelNoButton"
value="No"
oncomplete="PF('groupDeleteConfirm').hide()"/>
</p:confirmDialog>
我不確定你真的希望這些title
在按鈕上,因為它們會顯示給用戶。
當您使用p:commandButton
執行需要在服務器上執行的操作時,您不能使用type="button"
因為這是用於執行自定義javascript而不會導致ajax / non-ajax請求的Push按鈕到服務器。
為此,您可以分配type屬性(默認值為“submit”),或者您可以顯式使用type="submit"
。
希望這會對某人有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.