XPages。隐藏 DataTable 中的列

XPages. Hide column in DataTable

我试图隐藏数据表中的一列,但不起作用。只隐藏 header。在示例中,我尝试隐藏第一列。多米诺骨牌 9.0.1.

我弄错了还是bug?

我知道该列的 "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>

我可以确认我得到了完全相同的行为。我同意我希望整个专栏都不会呈现,但这显然不是它的行为。我一直将 xp:dataTable 控件视为稍微打扮的 xp:repeat,但没有那么多 window 打扮作为 xp:viewPanel 控件和 the Domino Designer wiki page on xp:dataTable 对任何细节和我的 Mastering XPages 第 2 版都没有帮助。也不会在 xp:dataTable.

上详细介绍

还值得注意的是,在 xp:text 字段上设置 rendered 属性 仍然会构建第一个每行中的单元格,无论第一个 是否被抑制。我猜 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>

请注意,要同时设置用作 header 标签的单元格的渲染 属性(代替 它将渲染为 ),您'将需要单独管理 属性 可见性。