仅在最后一行询问删除确认

时间:2013-01-16 19:52:13

标签: javascript jsf facelets delete-row

在我的JSF应用程序中,我必须从employee表中删除包含其他详细信息的行。我能够删除视图中的行,但我想只删除最后一行的删除确认对话框。

我已经使用JavaScript实现了它,但它会弹出每次删除。

现在,我只希望它用于最后一行,我可以检查它是否是通过托管bean的最后一行,但是如何在视图中实现它?

3 个答案:

答案 0 :(得分:0)

如果您在视图中显示该表,则可以使用js检查当您单击删除按钮或删除时表中是否只有一行。

要做到这一点,你需要你的html元素具有有意义的名称,你可以使用视图中的id属性在jsf中实现这一点。然后,您可以找到表$(#table-id)并查看它有多少行。

答案 1 :(得分:0)

您可以使用HTML DOM <table>元素的rows属性将所有行作为数组获取,您可以在该数组上调用length属性以了解长度。

所以,总而言之,这应该做到:

<h:form id="form">
    <h:dataTable id="table" ...>
        <h:column>
            <h:commandButton value="delete" ...
                onclick="if (document.getElementById('form:table').rows.length == 1) return confirm('Are you sure?')" />

答案 2 :(得分:0)

在删除逻辑检查表大小之前,在托管bean类中

  if(table.size == 1){
    popup = true;
   }

编写另一个在弹出“确定”按钮单击时调用的操作。