Primefaces 删除p:dataTable条目前显示确认对话框

Primefaces 删除p:dataTable条目前显示确认对话框,primefaces,Primefaces,我目前正在实现一个数据表,在素数faces中使用delete函数。删除前,用户在对话框中确认其决定:如果是“是”,则应删除“当前”行(即用户单击删除按钮的行)。当前已删除最后一行,与已触发的行删除操作无关: <p:dataTable var="var" value="#{bean.list}"> //some columns //relevant column <p:column id="id"> &

我目前正在实现一个数据表,在素数faces中使用delete函数。删除前,用户在对话框中确认其决定:如果是“是”,则应删除“当前”行(即用户单击删除按钮的行)。当前已删除最后一行,与已触发的行删除操作无关:

<p:dataTable var="var" value="#{bean.list}">

//some columns

//relevant column
 <p:column id="id">

  <p:commandButton id="deleteButton" onclick="PF('deleteDialog').show();" />
                            
  <p:confirmDialog id="deleteDialogId" widgetVar="deleteDialog" appendTo="@form">
    <p:commandButton id="confirm" onclick="PF('deleteDialog').hide();" 
      actionListener="#{bean.deleteRowAction(var)}" />
    <p:commandButton id="cancel" onclick="PF('deleteDialog').hide();" />
   </p:confirmDialog>
 </p:column>

</p:dataTable>
我也发现了,但不幸的是,它没有帮助


有没有办法将“当前”表项传递到外部按钮上?

有一种更简单的方法,使用。这允许您只需将
p:confirm
添加到
p:commandButton
中即可:

<h:form>     
    <p:dataTable var="var" value="#{bean.list}">
        <p:column id="id">
             <p:commandButton id="deleteButton"
                              action="#{bean.deleteRowAction(var)}">
                 <p:confirm header="Confirmation"
                            message="Are you sure?"
                            icon="pi pi-exclamation-triangle" />
            </p:commandButton>
        </p:column>
    </p:dataTable>
     
    <p:confirmDialog global="true">
        <p:commandButton value="Yes" type="button"
                         styleClass="ui-confirmdialog-yes" icon="pi pi-check" />
        <p:commandButton value="No" type="button"
                         styleClass="ui-confirmdialog-no" icon="pi pi-times" />
    </p:confirmDialog>      
</h:form>

有一种更简单的方法,使用。这允许您只需将
p:confirm
添加到
p:commandButton
中即可:

<h:form>     
    <p:dataTable var="var" value="#{bean.list}">
        <p:column id="id">
             <p:commandButton id="deleteButton"
                              action="#{bean.deleteRowAction(var)}">
                 <p:confirm header="Confirmation"
                            message="Are you sure?"
                            icon="pi pi-exclamation-triangle" />
            </p:commandButton>
        </p:column>
    </p:dataTable>
     
    <p:confirmDialog global="true">
        <p:commandButton value="Yes" type="button"
                         styleClass="ui-confirmdialog-yes" icon="pi pi-check" />
        <p:commandButton value="No" type="button"
                         styleClass="ui-confirmdialog-no" icon="pi pi-times" />
    </p:confirmDialog>      
</h:form>

我只在列中使用了confirm:

<p:dataTable var="item" ...
    <p:column headerText="Item">
        <p:commandButton action="#{myBean.deleteItem(item)}">
            <p:confirm header="Confirmation" message="Delete item?" icon="ui-icon-alert"/>
        </p:commandButton>
    </p:column> 

我只在列中使用了confirm:

<p:dataTable var="item" ...
    <p:column headerText="Item">
        <p:commandButton action="#{myBean.deleteItem(item)}">
            <p:confirm header="Confirmation" message="Delete item?" icon="ui-icon-alert"/>
        </p:commandButton>
    </p:column> 

谢谢!有没有办法在非全局对话框中使用
?请阅读,谢谢!有没有办法在非全局对话框中使用
?请阅读是的,这对我也很有用。我之所以不只使用
,是因为我无法真正微调显示的对话框。否则我觉得这是最好的选择。你确实有能力添加自己的文本。例如:
,其中消息可以有类似“我知道”这样的HTML标记。我还需要通过在按钮上添加小图标来自定义“是”和“否”按钮。但是,感谢您指出
标题
消息
最久的事情:如果您真的想要一个完美定制的确认,只需打开一个对话框,让它完成所有工作
action=“#{myBean.whatever(item)}”update=“:myConfirm”oncomplete=“PF('myConfirm').show()”
是的,这对我也很有效。我之所以不只使用
,是因为我无法真正微调显示的对话框。否则我觉得这是最好的选择。你确实有能力添加自己的文本。例如:
,其中消息可以有类似“我知道”这样的HTML标记。我还需要通过在按钮上添加小图标来自定义“是”和“否”按钮。但是,感谢您指出
标题
消息
最久的事情:如果您真的想要一个完美定制的确认,只需打开一个对话框,让它完成所有工作
action=“#{myBean.whatever(item)}”update=“:myConfirm”oncomplete=“PF('myConfirm').show()”