数据绑定到重复控制中的docitem(获取和设置!)

时间:2016-03-02 07:17:51

标签: data-binding xpages

我试图在重复控件中用字符串构建EL表达式。

...
<xp:this.value>
     <![CDATA[#{javascript:
         return '#{docVG.Feat' + lnr + '}';
      }]]>
</xp:this.value>
...

但那失败了。我发现了这个:

Dynamic binding within a repeat control

这给了我一个很好的理解。但它只处理读取项目。 用这种方法可以实现读写吗?

我的完整重复看起来像这样。它构建了大量的checkBoxes(在postave中我将它们放在一个项目中)。原因是xp:checkboxgroup的渲染不好(在表格中......)。

<xp:repeat id="repeat1" rows="30" value="#{viewFPbx1}" repeatControls="false" var="col" indexVar="lnr" disableOutputTag="true">
    <xp:checkBox uncheckedValue="">
        <xp:this.text>
             <![CDATA[#{javascript:
             col.getColumnValue("Subject");
             }]]>
         </xp:this.text>
        <xp:this.value>
             <![CDATA[#{javascript:
             return '#{docVG.Feat' + lnr + '}';
             }]]>
         </xp:this.value>
        <xp:this.checkedValue>
             <![CDATA[#{javascript:
             col.getColumnValue("Alias");
             }]]>
         </xp:this.checkedValue>
         <xp:this.defaultChecked>
             <![CDATA[#{javascript:
             col.getColumnValue("initial");                                   
             }]]>
         </xp:this.defaultChecked>
    </xp:checkBox>
    </li>
</xp:repeat>            

1 个答案:

答案 0 :(得分:2)

可能更简单的方法是将文档中所需的信息提取到beforePageLoad中存储在viewScope中的ArrayList或Map中,然后绑定到该文件。在保存中,将viewScope写回文档。

如果您使用“保存文档”简单操作或“提交”类型的按钮,请进行更改。除非你有一个简单的表格,否则不要依赖简单行动。在尝试实现这样的复杂绑定之前,您应该已经能够使用SSJS document1.save()(如果document1是您的数据源名称)。