簡體   English   中英

p:commandButton操作在p:confirmDialog中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM