我正在尝试隐藏dataTable中的列,但不能正常工作。只隐藏标题。在示例中,我尝试隐藏第一列。 Domino 9.0.1。
我错了,还是个错误?
我知道列的“display:none”,但我有很多数据,而且没有渲染列保存我的本地性能
<xp:dataTable id="dataTable1" rows="30" var="item">
<xp:this.value><![CDATA[#{javascript:var collection = [];
for( var i = 0; i < 10; i++ ) {
var obj = {};
obj.name = "Name" + i;
obj.key = "Key" + i;
collection.push( obj );
}
return collection;}]]></xp:this.value>
<xp:column id="column1" rendered="false">
<xp:this.facets>
<xp:span xp:key="header">Name</xp:span>
</xp:this.facets>
<xp:text escape="true" id="computedField1"
value="#{item.name}">
</xp:text>
</xp:column>
<xp:column id="column2">
<xp:this.facets>
<xp:span xp:key="header">Key</xp:span>
</xp:this.facets>
<xp:text escape="true" id="computedField2" value="#{item.key}"></xp:text>
</xp:column>
</xp:dataTable>
答案 0 :(得分:3)
我可以确认我得到了完全相同的行为。我同意我希望整个专栏都不会呈现,但这显然不是它的行为。我总是将 xp:dataTable 控件视为略显打扮的 xp:repeat ,但没有像 xp:viewPanel一样多的装饰控件和the Domino Designer wiki page on xp:dataTable对于任何细节和我的Mastering XPages第二版都没有任何帮助。关于 xp:dataTable 的详细信息也不过分。
还值得注意的是,在 xp:text 字段中设置呈现的属性仍会构建每行中的第一个单元格,而不管第一个&lt; th&gt;受到压制。我猜测 xp:dataTable 控件构建了那些时髦的HTML元素。
我的建议是切换到 xp:repeat 控件,这样可以让您更好地控制整个过程。调整你的代码,它会有点像这样:
<xp:table>
<xp:tr>
<xp:td>Name</xp:td>
<xp:td>Key</xp:td>
</xp:tr>
<xp:repeat
id="repeat1"
rows="30"
var="item">
<xp:this.value><![CDATA[#{javascript:var collection = [];
for( var i = 0; i < 10; i++ ) {
var obj = {};
obj.name = "Name" + i;
obj.key = "Key" + i;
collection.push( obj );
}
return collection;}]]></xp:this.value>
<xp:tr>
<xp:td
rendered="false">
<xp:text
escape="true"
id="computedField1"
value="#{item.name}">
</xp:text>
</xp:td>
<xp:td>
<xp:text
escape="true"
id="computedField2"
value="#{item.key}">
</xp:text>
</xp:td>
</xp:tr>
</xp:repeat>
</xp:table>
请注意,要同时设置用作标题标签的单元格的呈现属性(代替&lt; th&gt;它将呈现为&lt; td&gt;),您需要管理该标题财产可见性分开。