我有一个带有一些显示值和别名的组合框,在 SSJS 中,当我这样做时
getComponent("comboboxName").getValue()
它返回别名值,这很好。但现在我想要组合框的显示文本而不是别名值,有什么方法可以得到它吗?
定义 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
and SelectItem
定义并返回相应的显示文本(=标签)。如果没有标签,则返回值。
现在,你得到的标签是
getComponentLabel("comboboxName")
此代码适用于 XPage 控件:
- List Box
- 组合框
- 单选按钮组
- Dojo 过滤选择
您可以保存getComponentLabel()
服务器 JavaScript 脚本库(例如 Utils.jss)中的函数并将其作为资源集成到您的 XPage 中。
这是我的更新版本以前对类似问题的回答.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)