我正在构建一个历史跟踪器,它继续使用非xpage应用程序中的遗留代码。对于xpage应用程序,我只需调用以下函数。这很好用:
function AddObjectivesHistoryItem(doc, dt, action, username){
var ArrDocHistory:array = doc.getItemValueArray("History");
if(ArrDocHistory.length < 1){
// This should always return an object as it is created when an objectives
document is first
// created but do this check to be safe and create an array if for some
reason it doesnt exist
ArrDocHistory = [dt+"|"+action+"|"+username];
}else{
// append new value to the array
ArrDocHistory.push(dt+"|"+action+"|"+username);
}
return ArrDocHistory;
}
我遇到的问题是分割并显示3种数据类型。我有一个3个计算字段,它们是重复控件中的表中的日期,用户名和状态,代码,包括下面的第一列和计算字段,这应该是每个多值的第一个管道分隔符之前的所有值。: / p>
<table class="table table-hover">
<thead>
<tr>
<th>Date</th>
<th>Action</th>
<th>Username</th>
</tr>
</thead>
</table>
<table class="table table-hover">
<xp:repeat value="#{document1.History}" var="row">
<tbody>
<tr>
<td>
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:var ArrDocHistory:array = document1.getItemValueArray("History");
print ("LEN: " + ArrDocHistory.length);
var test:array = new Array();
for (i=0; i<ArrDocHistory.length; i++){
var split = ArrDocHistory[i].split("|");
test.push(split[0]);
//return split[i]
}
return test}]]></xp:this.value>
</xp:text></td>
但是,显示的是所有值,在一行中,用逗号分隔。例如,&#34; value1,value2,value3&#34;按照我的预期和需要,似乎无法在新行中自行显示每个值。例如:
值1
值2
值3
我知道我做了一些愚蠢的事情,但我目前正在遭受隧道视野,所以任何指针都非常感激。
答案 0 :(得分:0)
您正在将Test返回到单个计算字段。更改你的重复以返回数组'test',(它像你一样获得值,而不是将它分割成你拥有的数组)。比计算字段返回test的一个元素。
在计算字段后面放一个分页符,以便按照您想要的方式查看它。