Xpages,计算组合框值

Xpages,计算组合框值,xpages,Xpages,我有一个组合框,它的值是10、20、30、40、50,当我创建文档并在视图中显示它时,数字会出现,但我想显示它的标签(标签是文本)而不是数字。 有人能帮我找到解决这个问题的方法吗。 谢谢使用别名类似于正常形式的用法。 将公式项用于以下值: return ["- Please select -|", "ten|10", "twenty|20", "thirty|30"]; 但请记住,存储的值始终是文本而不是数字。使用别名与正常形式的用法类似。 将公式项用于以下值: return ["- Plea

我有一个组合框,它的值是10、20、30、40、50,当我创建文档并在视图中显示它时,数字会出现,但我想显示它的标签(标签是文本)而不是数字。 有人能帮我找到解决这个问题的方法吗。
谢谢

使用别名类似于正常形式的用法。 将公式项用于以下值:

return ["- Please select -|", "ten|10", "twenty|20", "thirty|30"];

但请记住,存储的值始终是文本而不是数字。

使用别名与正常形式的用法类似。 将公式项用于以下值:

return ["- Please select -|", "ten|10", "twenty|20", "thirty|30"];

但请记住,存储的值始终是文本而不是数字。

使用别名与正常形式的用法类似。 将公式项用于以下值:

return ["- Please select -|", "ten|10", "twenty|20", "thirty|30"];

但请记住,存储的值始终是文本而不是数字。

使用别名与正常形式的用法类似。 将公式项用于以下值:

return ["- Please select -|", "ten|10", "twenty|20", "thirty|30"];

但请记住,存储的值始终是文本而不是数字。

我倾向于将给定复选框的值添加到资源包中,然后从xp:selectItems和xp:viewColumn值访问该资源包

首先,我将创建一个我设置为“label”的资源包,其值如下:

itemsList_status=Draft|0,Published|1,Archived|-1
itemsList_delimiter=,
下面是一个xp:selectItems用于xp:combobox的示例:

<xp:selectItems>
 <xp:this.value>
  <![CDATA[#{javascript:return getSelectItems('status');}]
 </xp:this.value>
</xp:selectItems>

下面是我的getSelectItems()SSJS函数:

var getSelectItems : function(key) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    for( var n=0, l=items.length; n < l; n++) {
        returnObj.push(items[n]);
    }
    return returnObj;
 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectItems()");
    print(e.toString());
 }
}
var getSelectedValue : function(key, thisValue) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    var s = "";
    var l = "";
    for( var n=0, i=items.length; n < i; n++) {
        if(items[n].indexOf("|") == -1) {
            s = items[n];
            l = items[n];
        } else {
            s = items[n].split("|").pop();
            l = items[n].split("|").shift();
        }
        if(thisValue == s) {
            return l;
        }
    }
    return thisValue;

 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectedValue()");
    print(e.toString());
 }
}
var getSelectItems:函数(键){
试一试{
var returnObj=新数组();
var项=空;
开关(钥匙){
案例“状态”:
items=@Text(label.itemsList\u状态)。split(label.itemsList\u分隔符);
打破
}
对于(变量n=0,l=items.length;n
运行此函数,它将返回3个选项,分别读取草稿、发布和存档,同时实际存储0、1和-1。您遇到的问题——以及使用这种抽象的标签存储方法所要解决的问题:资源包中的值+要解决的SSJS——是当您要读取值但实际上想要显示标签时

下面是我的getSelectedValue()函数:

var getSelectItems : function(key) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    for( var n=0, l=items.length; n < l; n++) {
        returnObj.push(items[n]);
    }
    return returnObj;
 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectItems()");
    print(e.toString());
 }
}
var getSelectedValue : function(key, thisValue) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    var s = "";
    var l = "";
    for( var n=0, i=items.length; n < i; n++) {
        if(items[n].indexOf("|") == -1) {
            s = items[n];
            l = items[n];
        } else {
            s = items[n].split("|").pop();
            l = items[n].split("|").shift();
        }
        if(thisValue == s) {
            return l;
        }
    }
    return thisValue;

 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectedValue()");
    print(e.toString());
 }
}
var getSelectedValue:函数(键,thisValue){
试一试{
var returnObj=新数组();
var项=空;
开关(钥匙){
案例“状态”:
items=@Text(label.itemsList\u状态)。split(label.itemsList\u分隔符);
打破
}
var s=“”;
var l=“”;
对于(变量n=0,i=items.length;n
现在,您将传递当前值和所需的label:value资源束项目句柄,该函数将输出相关标签。下面是我如何在xp:viewColumn中使用它:

<xp:viewColumn
 id="viewColumn_status">
 <xp:this.value><![CDATA[#{javascript:return ""}]]></xp:this.value>
  <xp:text
   value="#{javascript: return         
    getSelectedValue('status',thisEntry.getDocument().getItemValueString('status'))}" />
 <xp:viewColumnHeader
  value="#{label.viewColumnHeader_posts_status}"
  id="viewColumnHeader_status">
 </xp:viewColumnHeader>
</xp:viewColumn>

。。。就是这样,“itemList_status”的资源包条目充当label:value对的权威主控,因此您只需检查输入构建并解构它以标记存储值


希望这有帮助

我倾向于将给定复选框的值添加到资源包中,然后从xp:selectItems和xp:viewColumn值访问该资源包

首先,我将创建一个我设置为“label”的资源包,其值如下:

itemsList_status=Draft|0,Published|1,Archived|-1
itemsList_delimiter=,
下面是一个xp:selectItems用于xp:combobox的示例:

<xp:selectItems>
 <xp:this.value>
  <![CDATA[#{javascript:return getSelectItems('status');}]
 </xp:this.value>
</xp:selectItems>

下面是我的getSelectItems()SSJS函数:

var getSelectItems : function(key) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    for( var n=0, l=items.length; n < l; n++) {
        returnObj.push(items[n]);
    }
    return returnObj;
 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectItems()");
    print(e.toString());
 }
}
var getSelectedValue : function(key, thisValue) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    var s = "";
    var l = "";
    for( var n=0, i=items.length; n < i; n++) {
        if(items[n].indexOf("|") == -1) {
            s = items[n];
            l = items[n];
        } else {
            s = items[n].split("|").pop();
            l = items[n].split("|").shift();
        }
        if(thisValue == s) {
            return l;
        }
    }
    return thisValue;

 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectedValue()");
    print(e.toString());
 }
}
var getSelectItems:函数(键){
试一试{
var returnObj=新数组();
var项=空;
开关(钥匙){
案例“状态”:
items=@Text(label.itemsList\u状态)。split(label.itemsList\u分隔符);
打破
}
对于(变量n=0,l=items.length;n
运行此函数,它将返回3个选项,分别读取草稿、发布和存档,同时实际存储0、1和-1。您遇到的问题——以及使用这种抽象的标签存储方法所要解决的问题:资源包中的值+要解决的SSJS——是当您要读取值但实际上想要显示标签时

下面是我的getSelectedValue()函数:

var getSelectItems : function(key) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    for( var n=0, l=items.length; n < l; n++) {
        returnObj.push(items[n]);
    }
    return returnObj;
 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectItems()");
    print(e.toString());
 }
}
var getSelectedValue : function(key, thisValue) {
 try {
    var returnObj = new Array();
    var items = null;
    switch(key) {
    case "status" : 
        items = @Text(label.itemsList_status).split(label.itemsList_delimiter);
        break
    }
    var s = "";
    var l = "";
    for( var n=0, i=items.length; n < i; n++) {
        if(items[n].indexOf("|") == -1) {
            s = items[n];
            l = items[n];
        } else {
            s = items[n].split("|").pop();
            l = items[n].split("|").shift();
        }
        if(thisValue == s) {
            return l;
        }
    }
    return thisValue;

 } catch(e) {
    print(database.getTitle() + " SSJS Error for getSelectedValue()");
    print(e.toString());
 }
}
var getSelectedValue:函数(键,thisValue){
试一试{
var returnObj=新数组();
var项=空;
开关(钥匙){
案例“状态”:
items=@Text(label.itemsList\u状态)。split(label.itemsList\u分隔符);
打破
}
var s=“”;
var l=“”;
对于(变量n=0,i=items.length;n
现在,您将传递当前值和所需的label:value资源束项目句柄,该函数将输出相关标签。下面是我如何在xp:viewColumn中使用它:

<xp:viewColumn
 id="viewColumn_status">
 <xp:this.value><![CDATA[#{javascript:return ""}]]></xp:this.value>
  <xp:text
   value="#{javascript: return         
    getSelectedValue('status',thisEntry.getDocument().getItemValueString('status'))}" />
 <xp:viewColumnHeader
  value="#{label.viewColumnHeader_posts_status}"
  id="viewColumnHeader_status">
 </xp:viewColumnHeader>
</xp:viewColumn>

。。。就是这样,“itemList_status”的资源包条目充当label:value对的权威主机,因此您只需检查输入构建的