2016-01-22 42 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

相關問題