如何在另一个自定义控件中获取文档数据源?

时间:2012-08-03 19:36:53

标签: lotus-notes xpages

我有一个包含此内容的xPage:

    <div class="lotusFrame">
    <xc:layoutCommonBanner />
    <xp:callback facetName="facetTitleBar" id="callbackTitleBar" />
    <xc:layoutDiscrepancyPlaceBar />
    <div class="lotusMain">
        <div class="lotusColLeft">
            <xp:callback facetName="facetColLeft" id="callbackColLeft" />
        </div>
        <div class="lotusColRight">
            <xp:callback facetName="facetColRight" id="callbackColRight" />
        </div>
        <div class="lotusContent">
            <xp:callback facetName="facetContent" id="callbackContent" />
        </div>
    </div>
    <xc:layoutCommonFooter />
    <xc:layoutCommonLegal />
</div>

正如您所看到的,组成布局时有几个自定义控件。在facetContent中,有一个包含文档数据源的文档。这是页面中唯一的文档。我需要在layoutDiscrepancyPlaceBar自定义控件中以某种方式获取此文档。

我在网上发现了一些名为currentDocument的无证功能的旧文章。它应该在每个页面上都有文档数据源。但它没有用。我有Domino 8.5.2,并且似乎不再支持currentDocument。

你能救我吗?如何从另一个自定义控件中的一个自定义控件获取文档数据源。它甚至可能吗?

提前致谢,Jiří

编辑:好的,它仍然受支持,但它只适用于自定义控件,它包含在带有文档数据源的控件中。在上面的情况下,它不起作用。

2 个答案:

答案 0 :(得分:0)

您最好的选择是在自定义属性中移交绑定名称。 (我们称之为bindto。然后将字段绑定到

 "${#{"+compositeData.bindto+"}}"

详见here(在prezi内)

P.S。 currentDocument记录在某处。

答案 1 :(得分:0)

您还可以将数据源上的句柄直接传递给自定义控件,以及要在数据源上绑定的项的名称。因为EL支持数组语法和点语法,所以这允许您定义如下表达式:

#{compositeData.dsn[compositeData.fieldName]}

(其中“dsn”是传递数据源句柄的属性,“fieldName”是传递要绑定到该数据源的项目名称的属性。)

可以找到有关此方法的更多详细信息here