我尝试创建弹出窗口以允许用户编辑实体的详细信息。有人的列表(重复控件),当您单击任何名称时,弹出窗口应该允许您编辑该人的其他数据。像这样的绘图:
我设法做到的唯一方法是在表单中创建一个隐藏的div,并使用JQuery-UI显示它。所以,这个div被绑定到一个“时间人”"一旦编辑,我将这些临时值复制到最终列表。像这样:
<people>
<person name="Alice" age="32" phone="+33..."/>
<person name="Mike" age="27" phone="+54..."/>
<person name="Aureline" age="60" phone="+33..."/>
</people>
<tmpPerson name="" age="" phone=""/>
但问题是,添加新寄存器很容易,因为我只需要在控件中加载空白值(tmpPerson为空),一旦完成,我只需要使用原点插入...但是在在注册表已经存在的情况下,加载值并不容易......我尝试使用IF但它不起作用(the alert)并且没有&#34;否则&#34;声明。那么,我如何确定是否必须加载注册表?
<xf:trigger id="loadExistingValues">
<xf:label>Load values</xf:label>
<xf:action ev:event="DOMActivate"
if="not(instance('people')/person[@id='Mio')">
<xf:alert>Here should be the code for a new person creation</xf:alert>
</xf:action>
</xf:trigger>
我的意思是,我知道我可以通过Javascript阅读数据模型,搜索名称为&#34; Mio&#34;如果它确实存在,也可以通过JS加载值,但如果我必须插入一个新的&#34; person&#34;我不能仅仅使用JS来实现它,所以我唯一可以设想的是创建一个用于创建的XForms动作的触发器,并从JS触发它。但所有这些听起来都很复杂。也许任何人都可以帮我提出想法或一个简单的例子?我没有找到这样的任何演示!
答案 0 :(得分:1)
您应该尝试一下对话框,这是XForms 2.0中的一项新功能,已在XSLTForms中得到部分支持。