我的笔记数据库中有4个审核字段。它们是多值的,并且当表单上的某些内容发生更改时,它们每个都会获得一个新的条目。我有一个审核表单,以表格形式显示了这些字段。几乎像一个视图。这是各列的代码。
<xp:tr>
<xp:td style="background-color:rgb(255,255,255)">
<xp:text escape="true" id="dspAuditWhen"></xp:text></xp:td>
<xp:td style="background-color:rgb(255,255,255)">
<xp:text escape="true" id="dspAuditWho"></xp:text></xp:td>
<xp:td style="background-color:rgb(255,255,255)">
<xp:text escape="true" id="dspAuditWhat"></xp:text></xp:td>
<xp:td style="background-color:rgb(255,255,255)">
<xp:text escape="true" id="dspAuditValue"></xp:text></xp:td>
</xp:tr>
我用客户端的“ onClientLoad”事件填充这些字段。
var auditWhen = XSP.getElementById("#{id:AuditWhen}").value.split(";");
XSP.getElementById("#{id:dspAuditWhen}").innerHTML = auditWhen.join("\n");
var auditWho = XSP.getElementById("#{id:AuditWho}").value.split(";");
for ( i = 0; i < auditWho.length ; i++) {auditWho[i] = auditWho[i].substr(0,20); }
var a=auditWho.join("\n");
XSP.getElementById("#{id:dspAuditWho}").innerHTML = auditWho.join("\n");
var auditWhat = XSP.getElementById("#{id:AuditWhat}").value.split(";");
var b=auditWhat.join("\n");
XSP.getElementById("#{id:dspAuditWhat}").innerHTML = auditWhat.join("\n");
注意几件事。我还没有dspAuditValue的代码。我也在控制auditWho的长度。另请注意,出于调试目的,我有一个变量“ a”和“ b”。
无论如何,此代码对于dspAuditWhen和dspAuditWho列都可以正常工作。对于dspAuditWhat,它们似乎只是用空格而不是换行符分隔。
我将“ auditWhat”与“ auditWho”进行了比较。 “ auditWhat”成功拆分为一个数组,就像“ auditWho”一样
我将“ b”与“ a”进行了比较。它也是一个大字符串,每个元素用\ n分隔。
我已经验证了notesClient中的auditWhat是多值列表字段。 (如果不是,那么我的Notes客户审核表单将无法正常工作。)
我认为这段代码绝对没有错。就像网络浏览器在说“您以自己想要的方式获得2列数据一样,这就是事实!”
IE和Firefox中的行为相同
最佳答案
\ n不是HTML标记-就像HTML源代码中的回车符一样。
尝试加入
代替换行,例如:
XSP.getElementById("#{id:dspAuditWhat}").innerHTML = auditWhat.join("<br/>");
不确定为什么要对特定列中的一列进行特殊处理