0

在我的 JSF 应用程序中,我必须从员工表中删除包含其他详细信息的行。我可以删除视图中的行,但我只想在最后一行删除时有一个删除确认对话框。

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

现在,我只想要最后一行,我可以通过托管 bean 检查它是否是最后一行,但是如何在视图中实现呢?

4

3 回答 3

0

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

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

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

于 2013-01-17T10:17:30.617 回答
0

您可以使用rowsHTML DOM<table>元素的属性将所有行作为一个数组获取,您可以在该数组上调用该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?')" />
于 2013-01-17T00:02:46.030 回答
0

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

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

于 2013-01-16T23:34:49.487 回答