我的笔记数据库中有 4 个审核字段。它们是多值的,当表单上的某些内容发生更改时,它们都会获得一个新条目。我有一个审核表单,以柱状方式显示这些字段。几乎就像一个 View 。这是列的代码。
<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 分隔。
我已经验证了auditWhat是Notes客户端中的多值列表字段。 (如果不是,那么我的 Notes 客户端审核表单将无法工作。)
我认为这段代码绝对没有问题。就好像网络浏览器在说“您按照您想要的方式获得了 2 列数据,就是这样!!!”
IE 和 Firefox 中的行为相同
最佳答案
\n 不是 HTML 标记 - 它就像 HTML 源代码中的回车符。
尝试加入
而不是换行,例如:
XSP.getElementById("#{id:dspAuditWhat}").innerHTML = auditWhat.join("<br/>");
不知道为什么特定商店中的一列需要特殊处理
关于javascript - 有没有更好的方法将多值数据显示为列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518896/