在XForms的单独弹出窗口中插入和更新数据

时间:2014-12-29 17:27:35

标签: xforms xsltforms

我尝试创建弹出窗口以允许用户编辑实体的详细信息。有人的列表(重复控件),当您单击任何名称时,弹出窗口应该允许您编辑该人的其他数据。像这样的绘图:

enter image description here

我设法做到的唯一方法是在表单中创建一个隐藏的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触发它。但所有这些听起来都很复杂。也许任何人都可以帮我提出想法或一个简单的例子?我没有找到这样的任何演示!

1 个答案:

答案 0 :(得分:1)

您应该尝试一下对话框,这是XForms 2.0中的一项新功能,已在XSLTForms中得到部分支持。