【问题标题】:How to get document datasource in another Custom Control?如何在另一个自定义控件中获取文档数据源?
【发布时间】:2012-08-03 19:36:52
【问题描述】:

我有一个包含以下内容的 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ří

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

【问题讨论】:

  • 您的位置栏中需要什么文档?也许您的问题还有其他解决方案。
  • 我想使用 placeBar 作为按钮在文档上做一些事情的操作栏。我可以将 placeBar 放入内容控件中,但这很讨厌。
  • 我认为这是您目前唯一的解决方案。或者您应该在更高级别定义数据源。

标签: lotus-notes xpages


【解决方案1】:

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

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

查看详情here(prezi 内)

附: currentDocument 记录在某处。

【讨论】:

    【解决方案2】:

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

    #{compositeData.dsn[compositeData.fieldName]}
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2016-04-20
      • 2015-12-07
      • 2015-05-20
      相关资源
      最近更新 更多