我有一个带有一些显示值和别名的组合框,当我做
时在SSJS中getComponent("comboboxName").getValue()
它返回别名值,这很好。但是现在我想要组合框的显示文本而不是别名值,有什么方法可以得到它吗?
答案 0 :(得分:3)
定义SSJS函数getComponentLabel()
:
function getComponentLabel(componentId) {
var select = getComponent(componentId);
var value = select.getValue();
if (value) {
try {
var list = select.getChildren();
for (var i = 0; i < list.length; i++) {
if ((typeof list[i]).indexOf("SelectItems") > -1) {
items = list[i].getValue();
for (var k = 0; k < items.length; k++) {
if (items[k].getValue() === value) {
return items[k].getLabel();
}
}
} else if ((typeof list[i]).indexOf("SelectItem") > -1) {
if (list[i].getItemValue() === value) {
return list[i].getItemLabel();
}
}
}
} catch (e) {
}
}
return value;
}
它在SelectItems
和SelectItem
定义中搜索组件的当前值,并返回相应的显示文本(= label)。如果没有标签,则返回值。
现在,您将获得带有
的标签getComponentLabel("comboboxName")
此代码适用于XPage控件:
您可以将getComponentLabel()
功能保存在Server JavaScript Scriptlibrary(例如Utils.jss)中,并将其作为资源集成到XPage中。
这是我的former answer to a similar question的续订版本。