0

我正在使用现有的 Lotus Notes 数据库并转换为 Xpages。其中一个表包含 3 个多值字段,以新行作为分隔符,“添加新”、“修改”和“删除”按钮控制数据的输入和删除方式。客户希望 XPage 看起来尽可能类似于 Notes GUI,我想我会使用 dijit 对话框来添加新行并找出删除和修改。但据我所知,对话框只能在客户端使用,输入对话框的数据不能带到Xpage上。这是真的?我在想我会在重复中使用一个可编辑的字段,但我也不能正常工作。

基本上,它的解决方案必须显示过去文档的多值字段,并且还能够允许用户编辑那些旧文档......加上在创建新文档时与过去类似/完全一样的工作方式。

在此先感谢您提供的任何帮助,因为这似乎比我想象的要容易得多。

我只是想在下面的解决方案之后更新,这似乎是解决这个问题的好方法。然而,作为一个公认的 XPages 新手,我真的在为这个概念的应用而苦苦挣扎。这就是我所拥有的,它显然不起作用。

从逻辑上讲,这听起来是一个很好的解决方案。但是,我不是 xpages 专家,即使开始,我也无法正常工作。任何能让我更容易上手的事情都会有很大的帮助。我不是一个通常寻找“答案”的人......我只是很难处理这个多值字段表问题。再次提前感谢...这是我写的内容,出现 500 错误。“A”是多值字段名称。

<xp:table>
    <xp:tr>
        <xp:td>
            <xp:repeat id="repeat1" rows="30" var="rowdata">
                <xp:this.value><![CDATA[#{javascript:document1.getItemValue("A")}]]></xp:this.value>
                <xp:tr id="valueRow">
                    <xp:td>
                        <xp:text
                            value="#{javascript: return rowdata[i]}" />
                    </xp:td>
                    <xp:eventHandler event="onclick" submit="false"
                        refreshMode="partial" execMode="partial" execId="valueRow"
                        immediate="true">
                        <xp:this.action>
                            <![CDATA[#{javascript:document1.getItemValue("A")}]]>
                        </xp:this.action>
                    </xp:eventHandler>
                </xp:tr>
            </xp:repeat>
        </xp:td>
    </xp:tr>
</xp:table>
4

1 回答 1

2

我会说执行以下操作

  1. 创建一个重复控件,它将从多值字段中提取数据并以只读方式打印它们。重复控件将生成一个 tr 结构,并在 onclick 事件上绑定一个事件处理程序。像这样的东西:

在此处输入图像描述

2 在 onclick 事件中更改 tr 客户端的样式(使用 dojo),以便人们知道他们选择了该行并在作用域 var 中设置该行的 id/标识符

3 在重复控件上方添加控件,如添加、删除、更新。添加和更新将打开一个对话框,并从所选行读取数据(如果是添加操作,则读取数据)。删除控件将从多行值字段中删除数据,保存文档并引用重复控件。

这应该有效。

于 2013-01-18T19:21:10.343 回答