Pra*_*kar 1 xpages xpages-ssjs
我有一个带有一些显示值和别名的组合框,在 SSJS 中,当我这样做时
getComponent("comboboxName").getValue()
Run Code Online (Sandbox Code Playgroud)
它返回别名值,这很好。但现在我想要组合框的显示文本而不是别名值,有什么方法可以得到它吗?
定义一个 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;
}
Run Code Online (Sandbox Code Playgroud)
SelectItems
它在和中搜索组件的当前值SelectItem
并返回相应的显示文本(=标签)。如果没有标签,则返回值。
现在,你得到的标签是
getComponentLabel("comboboxName")
Run Code Online (Sandbox Code Playgroud)
此代码适用于 XPage 控件:
您可以保存getComponentLabel()
函数保存在服务器 JavaScript 脚本库(例如 Utils.jss)中,并将其作为资源集成到您的 XPage 中。
这是我之前对类似问题的回答的更新版本。