Xpages Extlib dataView 控件在列为空值时设置 "display:none;" 样式

Xpages Extlib dataView control sets "display:none;" style when column has empty value

我有一个带有扩展库 DataView 控件的 xpage。我在那里定义了几个额外的列。

<xe:dataView id="dataView1"         
    <xe:this.data>
        <xp:dominoView var="vMyView" />
    </xe:this.data>

    <xe:this.summaryColumn>
        <xe:viewSummaryColumn columnName="$DateFrom"
            columnTitle="Date From">
        </xe:viewSummaryColumn>
    </xe:this.summaryColumn>

    <xe:this.extraColumns>
        <xe:viewExtraColumn columnName="$DateTo"
            styleClass="hidden-xs" headerStyleClass="hidden-xs" columnTitle="Date To"
            style="hidden-xs">
        </xe:viewExtraColumn>
        <xe:viewExtraColumn columnName="$Information"
            columnTitle="Information">
        </xe:viewExtraColumn>           
    </xe:this.extraColumns>
</xe:dataView>

我的视图数据源包含信息为空的相同单元格。这些单元格使用 style="display:none;" 呈现。

如何避免使用此属性并显示这些空单元格?我不想更改我的视图以使用“-”字符填充空单元格

style="display:none;":

呈现空列值

如果您在列定义中添加自定义转换器并用 space:

替换空值,则可以避免这种情况
<xe:viewExtraColumn columnName="$Information"
    columnTitle="Information">
    <xe:this.converter>
        <xp:customConverter>
            <xp:this.getAsString><![CDATA[#{javascript:value == "" ? " " : value}]]></xp:this.getAsString>
            <xp:this.getAsObject><![CDATA[#{javascript:value}]]></xp:this.getAsObject>
        </xp:customConverter>
    </xe:this.converter>
</xe:viewExtraColumn>

它在没有 display:none 的情况下渲染到 "normal" 网格单元,然后:

只要单元格不可编辑,getAsObject 的代码就无关紧要。因此,将值保持原样即可。

除了使用转换器来 "fake" 一些内容,您还可以调整 css。只需实施

.lotusTable TD {
    display: inline !important;
}

在自定义控件中使用的样式 sheet 资源中。
因此,您也不必将转换器应用于每个可能为空的列。