在我的 JSF 应用程序中,我必须从员工表中删除包含其他详细信息的行。我可以删除视图中的行,但我只想在最后一行删除时有一个删除确认对话框。
我已经使用 JavaScript 实现了它,但是每次删除都会弹出它。
现在,我只想要最后一行,我可以通过托管 bean 检查它是否是最后一行,但是如何在视图中实现呢?
在我的 JSF 应用程序中,我必须从员工表中删除包含其他详细信息的行。我可以删除视图中的行,但我只想在最后一行删除时有一个删除确认对话框。
我已经使用 JavaScript 实现了它,但是每次删除都会弹出它。
现在,我只想要最后一行,我可以通过托管 bean 检查它是否是最后一行,但是如何在视图中实现呢?
在您的托管 bean 类中删除逻辑检查表大小之前。
if(table.size == 1){
popup = true;
}
编写另一个在单击弹出窗口确定按钮时将调用的操作。
您可以使用rows
HTML 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?')" />
如果您在视图中显示表格,您可以使用您的js
来检查当您单击删除按钮或删除时表格中是否只有 1 行。
为此,您需要您的 html 元素具有有意义的名称,您可以在 jsf 中通过使用id
视图中的属性来实现这一点。然后,您可以找到该表$(#table-id)
并查看它有多少行。