XPages 从计算字段中的数组创建链接
XPages Create Links from Array in Computed Field
我将一个计算文件放入 XPages,然后通过下面的代码创建值。每行都有自己的 link 但在我完成这段代码之前,我想学习如何删除行首的逗号。必须有另一种方法来做到这一点。我应该使用其他设计元素之一,如重复控制吗?
<xp:text escape="false" id="computedField1" style="font-size:8pt">
<xp:this.value>
<![CDATA[#{javascript:{ var links = ["A1","A2","A3","","A444",""];
for (i=0;i<arr1.length;i++) {
var strText = arr1[i];
if (strText=="") {
strText = "There is no value";
}
links[i] = "<a href="+ arr1[i] + "target=\"_blank\">"+strText+"</a><br>";
}
return links;}]]></xp:this.value>
</xp:text>
欢迎任何建议,
Cumhur Ata
Cumhur,正如 Paul 指出的那样,重复循环是实现此目的的最佳选择。
对于这种特定情况,您 return 一个数组作为值。将数组分解为字符串将解决您的问题。
return @Implode(links,"\n");
此外,您可以将它用作分隔符,而不是在每个元素上添加 <br>
。
return @Implode(links,"<br/>");
我建议您使用重复控件。如果你这样做是为了得到你想要的结果,它可能看起来像这样:
<xp:repeat id="repeat1" rows="30" var="rowData">
<xp:this.value><![CDATA[#{javascript:var links = ["A1","A2","A3","","A444",""]
return links;}]]></xp:this.value>
<xp:link escape="true" value="#{rowData}" id="link1" target="_blank">
<xp:this.text><![CDATA[#{javascript:var temp:string = rowData;
if (temp.length == 0) {
return "There is no value";
} else {
return rowData;
}}]]></xp:this.text>
</xp:link>
<br/>
</xp:repeat>
我将一个计算文件放入 XPages,然后通过下面的代码创建值。每行都有自己的 link 但在我完成这段代码之前,我想学习如何删除行首的逗号。必须有另一种方法来做到这一点。我应该使用其他设计元素之一,如重复控制吗?
<xp:text escape="false" id="computedField1" style="font-size:8pt">
<xp:this.value>
<![CDATA[#{javascript:{ var links = ["A1","A2","A3","","A444",""];
for (i=0;i<arr1.length;i++) {
var strText = arr1[i];
if (strText=="") {
strText = "There is no value";
}
links[i] = "<a href="+ arr1[i] + "target=\"_blank\">"+strText+"</a><br>";
}
return links;}]]></xp:this.value>
</xp:text>
欢迎任何建议,
Cumhur Ata
Cumhur,正如 Paul 指出的那样,重复循环是实现此目的的最佳选择。
对于这种特定情况,您 return 一个数组作为值。将数组分解为字符串将解决您的问题。
return @Implode(links,"\n");
此外,您可以将它用作分隔符,而不是在每个元素上添加 <br>
。
return @Implode(links,"<br/>");
我建议您使用重复控件。如果你这样做是为了得到你想要的结果,它可能看起来像这样:
<xp:repeat id="repeat1" rows="30" var="rowData">
<xp:this.value><![CDATA[#{javascript:var links = ["A1","A2","A3","","A444",""]
return links;}]]></xp:this.value>
<xp:link escape="true" value="#{rowData}" id="link1" target="_blank">
<xp:this.text><![CDATA[#{javascript:var temp:string = rowData;
if (temp.length == 0) {
return "There is no value";
} else {
return rowData;
}}]]></xp:this.text>
</xp:link>
<br/>
</xp:repeat>