表中的动态表不会在保存/加载时保留它们的值

Dynamic tables within tables do not preserve their values over a save / load

使用 Livecycle Designer - 现在是 Adob​​e Experience Manager v 6.4。0.xxx,我试图让我的用户在表单的 table 内创建 table。我对非嵌套 table 很满意 - 它们工作正常。问题是,当我嵌套 tables 时,它们会在保存时丢失信息。第一行保存完好,但后面的行没有保存。

这些都是不平凡的 table。外行有,比如 5 个文本字段、一些单选按钮、基于逻辑的 hide/show 子表单等。嵌套的 table 仅在特定逻辑下显示 - 它也有多个文本字段和复选框。但是,我在下面对此进行了简化 - 仍然失败。

基于 ,我决定放弃 table 并嵌套子表单以获得与 table 相同的外观和感觉。同样,以这种方式构建的一个 'table' 工作正常,但随后的嵌套中断 - 以 interesting/crazy 方式 - 嵌套在第一行中的子表单获得更多行(instanceManager.count)并且后续行丢失其文本字段信息 - 但单选按钮保留其信息。

我做了什么

预存

Post-保存 太古怪了。保留第二行(与 tables 不同)但丢失了字段中的信息。第一行以某种方式获得了另一个嵌套行。

我通过按钮调用它 'click'

function fAddSfRow(oSfTable) {
  oSfRow = oSfTable.sfRow;
  oSfRow.instanceManager.addInstance(1);
}

并且,要删除一行 - 在另一个按钮中 'click'

var oSfRow = $.parent;
if (oSfRow.instanceManager.count > oSfRow.instanceManager.occur.min ) {
  oSfRow.instanceManager.removeInstance(oSfRow.index);
}

Example PDF

我想要的是嵌套 table,每个文本字段 saves/loads。

谢谢!!

好的,我找到的最佳答案是...

仅用 table 和 'pre-save' 和 'initialize' 包裹 table。

预存

  • 捕获外层的总行数table
  • 捕获每个内部的行数table
  • 捕获每个字段的原始值
  • 将所有这些存储在某处 - 比如在隐藏的文本字段中

初始化

  • 设置 table.row.instanceManager.count 为外部 table
  • 为每行内部tables设置table.row.instanceManager.count
  • 重置字段的所有原始值
  • 为hiding/showing 子表单或其他任何东西做任何逻辑

呃。