2016-01-22 20 views
1

我有一个带扩展库DataView控件的xpage。我在那里定义了几个额外的列。Xpages Extlib dataView控件设置“display:none;”当列有空值时的样式

<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> 

我的查看数据源包含信息为空的相同单元格。这些单元格的样式是“display:none;”。

如何避免此属性并显示这些空单元格?我想不会改变我的观点,以填补空细胞,即“ - ”字符

回答

2

空列值获取与呈现style="display:none;"

enter image description here

你能避免这个,如果你加入自定义转换到你的列定义,并用空格代替空值:

<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则:

enter image description here

只要单元格不可编辑,getAsObject的代码就无关紧要。所以可以保留原来的值。

+1

感谢您的帮助。我不得不将getAsString部分改为'value ==“”? “”:I18n.toString(value,“yyyy-MM-dd”)'因为我在列中使用日期。 –

0

而不是使用转换器来“伪”一些内容,您也可以调整CSS。只需执行

.lotusTable TD { 
    display: inline !important; 
} 

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

+0

该表不使用.lotusTable类呈现。我已经改变了CSS来跟随你的课程条目,但表格被视为没有表格单元的文本 –

+0

我的不好,我以为你会使用OneUI(oneuiv2.1-default)主题 - 在类中,所以“处理”单个元素很容易。但只要检查HTML,我相信你会发现一个模式,并可以相应地修改CSS选择器 - 或者通过他们的styleClass属性为你的extraColumns指定一个自己的类名。 – DonMaro

相关问题