1

不知道这个问题对不对?如果它很疯狂,请不要在意。实际上我正在开发 xpages 应用程序。在那里我需要做两件事,我想添加选项列表功能并将动态数据(如 field_1、field_2、field_3、...)绑定到 n 取决于客户的选择。我正在为两个自定义控件使用复合数据。我可以删除选项列表控件的复合数据,也可以通过传递范围变量来完成。但这比复合数据需要更多的时间。

我没有收到任何错误。但是绑定的文档没有保存。

是否可以导入具有复合数据的 CC?

第一个CC的代码:-

<xc:viewpicklist datasrc="view1" dialogID="dialog1" dialogWidth="700px" dialogTitle="Pick this field value!!!">
<xc:this.viewColumn>
<xp:value>0</xp:value>
<xp:value>1</xp:value>
<xp:value>2</xp:value>
</xc:this.viewColumn>
</xc:viewpicklist>

第二个CC的代码:-

<xc:BOM_Partinfo BOM_Partinfo="#{document1}"
                               TNUM="field#{index+1}" Desc="Desc#{index+1}" quan="Ea#{index+1}"
                               exp="exp#{index+1}" cap="cap#{index+1}" total="price#{index+1}"
                               RD="RD#{index+1}" m="manufact#{index+1}"
                               m_n="manufactnum#{index+1}">
                       </xc:BOM_Partinfo>
4

3 回答 3

1

在 XP/CC 中定义您想要这些 CC 的数据源。为两个 CC 定义参数“dataSourceName”。在它们中的每一个中,在您要绑定到数据源的任何地方都使用 EL "requestScope[compositeData.dataSourceName].fieldName"。

于 2012-10-30T17:40:51.863 回答
1

您不能使用复合数据参数将文档数据源发送到自定义控件。

您可以尝试使用此脚本来代替 http://openntf.org/XSnippets.nsf/snippet.xsp?id=access-datasources-of-custom-controls

于 2012-10-30T12:00:28.540 回答
1

如果自定义控件在调用页面中是静态的,则可以读取在自定义控件的属性中设置的信息:

var x = getComponent("yourcomponentid");
x.getPropertyMap().get("parametername");

但是您想将数据源从外部控件传播到内部控件...

你需要仔细计划。如果您移交数据源,那么您的自定义控件依赖于数据源中的一组固定字段(这将是 com.ibm.xsp.model.DocumentDataSource 类型的参数)。这将违反封装原则。所以我建议你实际上交出数据绑定 - 优点:你可以非常灵活地绑定到什么(不仅数据源,而且 bean 和范围变量都可以工作)。诀窍是您提供绑定名称,因为您将静态键入它(例如“document1.subject”或“requestScope.bla”)。在你的控制下,你然后做

${"#{compositeData.field1}"} 
${"#{compositeData.field2}"} 

每个字段都需要一个。

于 2012-10-30T14:51:11.080 回答