在 xxforms-iteration-moved 上重新初始化 XBL 组件

2023-12-21

我有一个 XBL 组件,它在 javascript 中创建一个复选框控件。值是在组件初始化期间在 javascript 中设置的。当不在重复内部使用时,组件运行良好,但当我尝试向上或向下移动行时,在内部重复 XBL 控件不会更改状态。

xxforms-iteration-moved 事件在移动的行上触发,但不会在此移动期间更改位置的行上触发。例如,如果我将第 3 行移动到第 2 行,则 xxforms-iteration-moved 在第 3 行上触发,但我想重新初始化第 2 行中的组件,并且我的状态保存在 javascript 中。

我认为 xxforms-iteration-moved 应该在改变位置的两行上触发?这实际上是涉及两行的交换。请给出意见。

编辑:我正在使用 Orbeon Form Runner


到什么组件xxforms-iteration-moved发送是如何发送的问题xxforms-iteration-moved被定义为。现在,它被分派到移动的迭代内的控件。您可能需要的是处理xforms-enabled事件,除了xxforms-iteration-moved。考虑以下示例:您从包含“a、c、d”的列表开始。如果在“a”之后插入“b”,则新的“b”会得到一个xforms-enabled和“c,d”各得到一个xxforms-iteration-moved。因此,通过对这两个事件做出反应,您应该能够根据需要(重新)初始化您的组件。

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
      xmlns:xforms="http://www.w3.org/2002/xforms"
      xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
      xmlns:ev="http://www.w3.org/2001/xml-events"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
    <xhtml:head>
        <xhtml:title>Iteration moved</xhtml:title>
        <xforms:model>
            <xforms:instance>
                <instance>
                    <letter>a</letter>
                    <letter>c</letter>
                    <letter>d</letter>
                    <letter>e</letter>
                </instance>
            </xforms:instance>
        </xforms:model>
    </xhtml:head>
    <xhtml:body>
        <fr:button>
            <xforms:label>Insert b</xforms:label>
            <xforms:insert ev:event="DOMActivate" nodeset="letter" at="1" position="after" origin="xxforms:element('letter', 'b')"/>
        </fr:button>
        <fr:button>
            <xforms:label>Delete c</xforms:label>
            <xforms:delete ev:event="DOMActivate" nodeset="letter[. = 'c']"/>
        </fr:button>
        <xforms:repeat id="letter-repeat" nodeset="letter">
            <xforms:output id="letter" value=".">
                <xforms:message ev:event="xxforms-iteration-moved" level="modal" value="concat('xxforms-iteration-moved : ', .)"/>
                <xforms:message ev:event="xforms-enabled" level="modal" value="concat('xforms-enabled : ', .)"/>
            </xforms:output>
        </xforms:repeat>
    </xhtml:body>
</xhtml:html>

我应该补充一点,如果您希望您的组件在重复中使用(并且迟早每个组件都会如此),那么现在,由于重复在客户端的工作方式,如果您正在做一些工作来初始化组件xforms-enabled,您很可能也需要这样做xxforms-iteration-moved。例如,参见这是如何完成的 http://github.com/orbeon/orbeon-forms/blob/b97726230fbe380c20e7c1dab438f140cf846fde/src/resources-packaged/xbl/orbeon/button/button.xbl#L70 in the fr:button成分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 xxforms-iteration-moved 上重新初始化 XBL 组件 的相关文章

  • 如何使用类似 SQL 的接口 INSERT 到 influxDB 中?

    是否有可能INSERT使用 InfluxDB 上类似 SQL 的接口将数据转换为系列 测量值 是的 您可以简单地INSERT线路协议字符串 https docs influxdata com influxdb v1 6 tools shel
  • 在 JavaScript 对象中将键值分配给另一个键值[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 例如 我知道可以在 Javascript 中设置带有前面键值的键值 var obj one yes two obj one obj two
  • 在 Joomla 中加载另一个模块中的模块

    我绝对是 Joomla 的初学者 我正在尝试在另一个模块中加载一个模块 但我找不到如何执行此操作 我一直在尝试添加 loadposition position 用 position 替换了我想要加载的模块的位置 但它似乎只在文章中起作用 我
  • StatelessSession 在 AbstractEntityPersister (Hibernate) 中被转换为 Session

    我正在尝试对 StatelessSession 进行简单的保存 有人能发现我做错了什么 导致 Hibernate 方法尝试将 StatelessSession 无效转换为 Session 如果有任何反馈 我将不胜感激 我的示例代码 Stat
  • python-click:格式化帮助文本

    这个问题是关于click https click palletsprojects com en 7 x 包裹 帮助的长文本未按预期显示 我尝试使用 b也一样 但似乎影响不大 cmd and powershell相同的代码有不同的结果 为什么
  • 在图像opencv上绘制矩形?

    我已经使用 python 中的 opencv 库加载了一个图像 现在我想使用鼠标绘制一个矩形 但是在绘制矩形时 矩形应该是可见的 以便绘制它的人可以以某种方式放置它 使感兴趣的对象完全可见在矩形中 但我的代码没有产生所需的输出 我的代码是
  • JQuery $('iframe').ready 为什么不起作用?

    我的父页面中有一个很长的 iframe 当您重新加载或单击 i 框架页面内的链接时 它会加载到其中 但纯窗口必须向上滚动 我尝试过各种代码示例 jquery哪个事件比这个更好 https stackoverflow com question
  • Node.js 是 Perl 和 Python 等传统脚本语言的可行替代品吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 是否有开源电子邮件消息(标头、附件等)解析器?

    是否有免费的开源解决方案将原始电子邮件消息 作为一段文本 并返回每个标头字段 每个附件和消息正文作为单独的字段 是的 对于你指出的每一种语言 我自己都在Python 中使用过 尝试仔细阅读您选择的库的库文档 注意 您可能期望有一个 不错的
  • mono:使用 monodevelop 可以进行远程调试吗?

    mono 使用 monodevelop 可以进行远程调试吗 我想远程调试在 CentOS 开发计算机上安装了 monodevelop 的远程 RHEL 服务器上运行的控制台应用程序 这对于 monodevelop 可能吗 这实际上可以通过软
  • 如何限制 haar 级联检测到的人脸数量

    我在情绪检测系统中使用 Haar 级联 我提供给模型的每个视频输入中只有一张脸 这是一项要求 当我运行 Haar 级联模型来检测人脸时 它有一些误报 由于视频中只有一张脸 因此我想选取检测到的最积极的区域并忽略所有其他检测 有没有办法做到这
  • 使用 htaccess 阻止所有人,除了来自特定引荐来源网址的访问者

    在 htaccess 中 如何阻止除来自特定域的访问者之外的所有访问者 我尝试了这个但没有成功 serve everyone from specific domain or specific user agent RewriteCond H
  • 在 Sitecore 中自定义子布局缓存

    在 Sitecore 中使用 WebControls 时 有一种方法可以自定义缓存行为 override获取缓存ID方法 有没有办法通过子布局 用户控件 实现类似的效果 我想添加自定义 VaryBy 选项 示例 Vary By Moon P
  • 仅保留数组中每个对象中选定的键[重复]

    这个问题在这里已经有答案了 下面 函数redux1删除与未列出的键相对应的条目keys to keep from data object 鉴于我有一个要保留的对象键列表 我该如何重写redux1以更清洁的方式 最好利用map filter
  • C++ 输出字符串没有 '\n' 或 endl 将在字符串末尾输出 '#'

    在ubuntu16 04上 我使用g 编译这样的代码 include
  • 大使回应“上游不健康”

    我有一个简单的 k3s 集群 并按照以下方式安装了大使入口控制器docs https www getambassador io yaml ambassador ambassador rbac yaml 当我尝试通过浏览器访问该服务时 我只是
  • 从列表中删除重复项的最有效方法

    假设我有一个包含重复值的列表 并且我想删除重复项 List
  • 如何让onFormSubmit自动触发?

    您提供的 修复 test onformsubmit 代码 每次电子表格中有新数据时我都必须手动运行它 我希望它在提交表单时自动将 pdf 发送到电子邮件 有办法吗 因为手动方式运行的代码与预期的完全一样 但我希望将其作为自动事件 因此我不必
  • 将存储导出到另一台计算机

    我需要一种将隐藏的更改导出到另一台计算机的方法 我在电脑1上做了 git stash save feature 我正在尝试将隐藏补丁获取到文件 然后将其导入到另一台计算机 git stash show p gt patch 此命令为我提供了
  • OpenFileDialog多选问题

    我有标准的 OpenFileDialog var openFileDialog new OpenFileDialog DefaultExt mpo Filter Image file mpo Multiselect true Restore
  • Android Studio 模拟器 E/AudioFlinger 错误消息

    当我从 AVD 管理器启动任何设备时 它只会无限循环此错误消息 E AudioFlinger read failed framesRead 1 当我创建新设备时它甚至会这样做 是否启用 使用主机 GPU 并不重要 当我启动应用程序时 它通常
  • Log4net:每个类的单独日志文件

    我想记录来自多个班级的消息 问题是 目前我可以将所有消息记录到单个文件中 我想要执行此操作 A 类应将其消息记录到 ALog txt B 类应将其消息记录到 BLog txt 请告诉我这些设置的示例配置文件 除了rootlogger 您可以
  • Magento 通过系统变量动态更改布局

    有没有一种方法可以通过使用在我们自己的模块上设置的系统变量来动态更改 Magento 页面 比方说产品类别页面 的布局 我希望能够通过我自己的模块管理配置面板设置我的类别页面的默认布局 这样 每次我想要更改某个 magento 页面的默认布
  • Swift:插入带有文本输入的警报框(并存储文本输入)

    在我的一个viewController 我想做一个alert box出现提示user输入此信息 然后 我希望用户使用以下方式存储此输入NSUserDefaults 我怎样才能实现这个目标 先感谢您 看一下这个 let alertContro
  • SQL:如何返回不存在的行?

    假设我有下表 color id parent id language id name 1 50 1 Black 然后说我需要行WHERE parent id 50 AND language id 2 显然 根据我的示例表 我不会得到任何回报
  • 使用自定义投影仪主题在 rmarkdown::beamer_presentation 中创建从徽标到目录幻灯片的超链接

    我用的是自定义的LaTex beamer theme in an rmarkdown beamer presentation 根据这些答案 乳胶主题 https stackoverflow com questions 66230673 ho
  • 如何覆盖 Datalist 以呈现为 Div 而不是 Table?

    我想将 datalist 渲染到 div 而不是表 并且重复列将通过 div 上的浮动样式进行修复 所以任何人都知道一种覆盖渲染方法来做到这一点 Thanks 我找到了这个解决方案 但我发布它是为了帮助其他人 有些用户建议使用中继器 这是正
  • 在 xxforms-iteration-moved 上重新初始化 XBL 组件

    我有一个 XBL 组件 它在 javascript 中创建一个复选框控件 值是在组件初始化期间在 javascript 中设置的 当不在重复内部使用时 组件运行良好 但当我尝试向上或向下移动行时 在内部重复 XBL 控件不会更改状态 xxf