我正在使用XForms的重复来构建一个表(非常类似于http://wiki.orbeon.com/forms/doc/developer-guide/xforms-repeat)。每一行都应该有一个删除触发器来删除它。以下代码仅删除所选项目,是否可以使用当前重复索引作为at的值?
<xforms:delete nodeset="employees" at="index('employee-repeat')"/>
感谢您的帮助!
答案 0 :(得分:3)
如果每行都有删除触发器,则不需要使用index()
功能。相反,只需引用当前节点,如:
<xforms:repeat nodeset="employees">
...
<xforms:trigger>
<xforms:label>Delete</xforms:label>
<xforms:delete ev:event="DOMActivate" nodeset="."/>
</xforms:trigger>
</xforms:repeat>
如果您只有一个触发器用于整个重复(即在列出员工的表的开头和/或结尾),那么您可以使用index()
来引用“当前”员工。这意味着用户首先需要单击该员工的某个位置以使其成为当前员工,然后单击该按钮。这是一个有点不同寻常的Web用户界面,所以我宁愿每个员工都有一个删除按钮,或者使用复选框让用户选择他们想要操作的员工。