在采购订单模块中,我们需要根据来源选择方法,竞争类型和PO的总成本询问某些问题.这些问题可能会随着时间的推移而在数据库的不同实例之间发生变化.
所以我有一个包含问题的视图,这样我就可以动态地向XPage中添加问题,而无需更改代码.每个问题的答案将存储在一个字段中.因此,包含该问题的文档有一个名为FieldName的字段,用于提供将要使用的字段名称.不幸的是,我没有运气将这些动态字段绑定到文档.
<xp:this.data>
<xp:dominoView var="competitionQuestionView"
viewName="CompetitionQuestions">
</xp:dominoView>
</xp:this.data>
<xp:repeat id="repeat2" rows="30" var="rowData" style="width:700px"
value="#{competitionQuestionView}">
<xp:label id="label1">
<xp:this.value><![CDATA[#{javascript:rowData.getColumnValue("Question");}]]></xp:this.value>
</xp:label>
<xp:inputText id="inputText1">
<xp:this.rendered><![CDATA[#{javascript:rowData.getColumnValue("FieldType") == "Text Box"; }]]></xp:this.rendered>
<xp:this.value><![CDATA[#{javascript:poDoc[rowData.getColumnValue ("FieldName")];}]]></xp:this.value>
</xp:inputText>
</xp:repeat>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种方法来做到这一点,包括使一个dynamicInputText自定义控件传入字段名称,但没有运气.我得到的最接近的是我用这个:
<xp:this.value>
<![CDATA[#{javascript:tmp = rowData.getColumnValue ("FieldName");'#{poDoc.'+tmp+'}';}]]>
</xp:this.value>
Run Code Online (Sandbox Code Playgroud)
这给了我类似#{poDoc.justification}的东西,这是我想要传递给'绑定'的东西,但它最终显示为文本值.
我确实尝试使用$来计算加载时的值,但我猜它不起作用,因为我的(和rowData)视图在加载时不可用.当我想要使用部分刷新时,由于更新了我想要显示哪些字段的标准,这最终会出现问题.
其他问题的一些答案看起来很有希望,但没有提供代码,所以我无法弄明白.
尝试计算要在自定义控件中加载哪个样式表并获取compositeData不存在错误.
任何想法是什么问题?
这是在href元素上计算的
if (compositeData.iconSet == "Full") {
"/CC_Style_full.css"
} else {
"/CC_Style_Condensed.css"
}
Run Code Online (Sandbox Code Playgroud) 想想"计算子表单",但在Xpages中.
在我的一个自定义控件上,根据特定值,我想要呈现一个自定义控件,该控件使用组合框呈现下拉列表或呈现带有提前输入的输入框.
这是一个呈现视图的自定义控件,所有视图配置选项都由文档而不是设计处理,因此几个不同的视图使用相同的自定义控件.
例如:我有一个按状态视图,使用状态为第一列的自定义控件,我们使用组合框允许用户选择要过滤的状态值.另一个视图按申请编号排序,我想使用预先输入而不是组合框.
我的偏好是为两者使用相同的动态视图自定义控件,并有一个公式来确定要使用的两个(comboBox或inputText)中的哪一个.如何计算要加载的自定义控件?
(动态视图控件的功劳归功于Scott Good的团队解决方案.)