XPages中。隐藏DataTable中的列

时间:2015-05-20 12:19:57

标签: datatable xpages lotus-notes

我正在尝试隐藏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>

1 个答案:

答案 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;),您需要管理该标题财产可见性分开。