表中的动态表不会在保存/加载时保留它们的值
Dynamic tables within tables do not preserve their values over a save / load
使用 Livecycle Designer - 现在是 Adobe Experience Manager v 6.4。0.xxx,我试图让我的用户在表单的 table 内创建 table。我对非嵌套 table 很满意 - 它们工作正常。问题是,当我嵌套 tables 时,它们会在保存时丢失信息。第一行保存完好,但后面的行没有保存。
这些都是不平凡的 table。外行有,比如 5 个文本字段、一些单选按钮、基于逻辑的 hide/show 子表单等。嵌套的 table 仅在特定逻辑下显示 - 它也有多个文本字段和复选框。但是,我在下面对此进行了简化 - 仍然失败。
基于 ,我决定放弃 table 并嵌套子表单以获得与 table 相同的外观和感觉。同样,以这种方式构建的一个 'table' 工作正常,但随后的嵌套中断 - 以 interesting/crazy 方式 - 嵌套在第一行中的子表单获得更多行(instanceManager.count)并且后续行丢失其文本字段信息 - 但单选按钮保留其信息。
我做了什么
- 我已经使用 table 上的子表单进行了重建。没有爱,虽然有趣怪异。
- 我已经切换了表单属性/运行-时间/保存时保存对表单的脚本更改——我想要自动,但我已经切换到手动并返回。 (根据 https://forums.adobe.com/thread/1281883)
- 我已尽我所能对其进行监控 - 在 preSave 和 postSave 上有信息 - 在初始化时它已经消失了。
预存
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);
}
我想要的是嵌套 table,每个文本字段 saves/loads。
谢谢!!
好的,我找到的最佳答案是...
仅用 table 和 'pre-save' 和 'initialize' 包裹 table。
预存
- 捕获外层的总行数table
- 捕获每个内部的行数table
- 捕获每个字段的原始值
- 将所有这些存储在某处 - 比如在隐藏的文本字段中
初始化
- 设置 table.row.instanceManager.count 为外部 table
- 为每行内部tables设置table.row.instanceManager.count
- 重置字段的所有原始值
- 为hiding/showing 子表单或其他任何东西做任何逻辑
呃。
使用 Livecycle Designer - 现在是 Adobe Experience Manager v 6.4。0.xxx,我试图让我的用户在表单的 table 内创建 table。我对非嵌套 table 很满意 - 它们工作正常。问题是,当我嵌套 tables 时,它们会在保存时丢失信息。第一行保存完好,但后面的行没有保存。
这些都是不平凡的 table。外行有,比如 5 个文本字段、一些单选按钮、基于逻辑的 hide/show 子表单等。嵌套的 table 仅在特定逻辑下显示 - 它也有多个文本字段和复选框。但是,我在下面对此进行了简化 - 仍然失败。
基于
我做了什么
- 我已经使用 table 上的子表单进行了重建。没有爱,虽然有趣怪异。
- 我已经切换了表单属性/运行-时间/保存时保存对表单的脚本更改——我想要自动,但我已经切换到手动并返回。 (根据 https://forums.adobe.com/thread/1281883)
- 我已尽我所能对其进行监控 - 在 preSave 和 postSave 上有信息 - 在初始化时它已经消失了。
预存
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);
}
我想要的是嵌套 table,每个文本字段 saves/loads。
谢谢!!
好的,我找到的最佳答案是...
仅用 table 和 'pre-save' 和 'initialize' 包裹 table。
预存
- 捕获外层的总行数table
- 捕获每个内部的行数table
- 捕获每个字段的原始值
- 将所有这些存储在某处 - 比如在隐藏的文本字段中
初始化
- 设置 table.row.instanceManager.count 为外部 table
- 为每行内部tables设置table.row.instanceManager.count
- 重置字段的所有原始值
- 为hiding/showing 子表单或其他任何东西做任何逻辑
呃。