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

Posted

技术标签:

【中文标题】在 XForms 的单独弹出窗口中插入和更新数据【英文标题】:Inserting and updating data in a separate popup in XForms 【发布时间】:2015-02-25 21:39:10 【问题描述】:

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

我设法做到这一点的唯一方法是在表单中创建一个隐藏的 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 都没有)并且没有“else”语句。那么,如何确定是否必须加载注册表?

<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 读取数据模型,搜索名为“Mio”的人,如果确实存在,也通过 JS 加载值,但如果我必须插入一个新的“人”我不能只用 JS 来做,所以我唯一能想到的就是用 XForms 操作创建一个触发器,然后从 JS 中触发它。但是所有这些东西听起来都很复杂。也许任何人都可以帮助我提出想法或一个简单的例子?我找不到这样的演示!

【问题讨论】:

【参考方案1】:

您应该尝试一下对话框,它是 XForms 2.0 中的一个新功能,在 XSLTForms 中已经部分支持。

【讨论】:

感谢 Alain,我也尝试过使用原生 XSLTForms 对话框,但我选择了 JQuery,因为它更容易“以图形方式操作”。问题实际上是修改集合中现有项目的逻辑,因为我必须选择它,然后将值复制到临时模型实例,然后更新集合中的值。我一直在寻找一种简单的方法来做到这一点

以上是关于在 XForms 的单独弹出窗口中插入和更新数据的主要内容,如果未能解决你的问题,请参考以下文章

小程序地图插入图标后 怎么实现点击图标弹出窗口

Kivy:如何在不关闭弹出窗口的情况下更新弹出标签文本

剑道网格弹出编辑器不会关闭

无法将 altair 可视化作为弹出窗口插入到叶地图中

Javascript问题:alter()窗口连续弹出两次?WHY?!

如何使用EditText字段创建简单的Android studio弹出窗口以进行数据插入