2016-09-09 63 views
1

我有一個自定義控件,有很多字段,我想在同一個Xpage上多次包含這個自定義控件,但是我需要添加的每個自定義控件的字段名都不相同,並且因爲我有很多字段想要爲所有字段創建屬性定義。是否可以使用EL語言在自定義控件中創建動態字段名?

我使用所有種類的領域,包括RT的,所以我想我需要結合使用EL語言來完成,

是有辦法使該字段名稱動態?所以這些字段會添加一些我添加到屬性定義中的後綴,即在第一個cc中,所有字段都會後綴「_1」和第二個「_2」,依此類推。

下面只是一個自定義控制

<?xml version="1.0" encoding="UTF-8"?> 
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

     <xp:panel> 
      <xp:inputText id="inputText1" value="#{d.Fld1}"></xp:inputText> 
      <xp:inputText id="inputText2" value="#{d.Fld2}"></xp:inputText> 
      <xp:inputText id="inputText3" value="#{d.Fld3}"></xp:inputText> 
     </xp:panel> 
    </xp:view> 

回答

1

使用的可能性與預處理器${javascript:...}在第一負載時,應當更換定製控制的代碼部分的一個例子。

例如,表達

value="#{doc.${javascript:'Fld1_' + compositeData.index}}" 

得到由

value="#{doc.Fld1_2}" 

取代,如果是compositeData.index 「2」。


下面是用於測試的工作示例:

自定義控件 「ccFields」:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view 
    xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:panel> 
     <xp:inputText 
      id="inputText1" 
      value="#{doc.${javascript:'Fld1_' + compositeData.index}}" /> 
     <xp:inputText 
      id="inputText2" 
      value="#{doc.${javascript:'Fld2_' + compositeData.index}}" /> 
     <xp:inputRichText 
      id="inputRichText1" 
      value="#{doc.${javascript:'Fld3_' + compositeData.index}}" /> 
    </xp:panel> 
</xp:view> 

與屬性定義 enter image description here

主要的XPage:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view 
    xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 
    <xp:this.data> 
     <xp:dominoDocument var="doc" formName="Test" /> 
    </xp:this.data> 
    <xc:ccFields index="1" /> 
    <xc:ccFields index="2" /> 
    <xp:messages /> 
    <xp:button 
     value="save" 
     id="button1"> 
     <xp:eventHandler 
      event="onclick" 
      submit="true" 
      refreshMode="complete" 
      immediate="false" 
      save="true"> 
     </xp:eventHandler> 
    </xp:button> 
</xp:view> 

當你點擊按鈕 「保存」,它會創建一個新的文件與表格 「測試」,在文本字段

  • Fld1_1
  • Fld1_2
  • Fld2_1
  • Fld2_2

和富文本字段

  • Fld3_1
  • Fld3_2

與你輸入的值。

+0

謝謝你會嘗試 –

+0

我仍然無法看到用戶界面中的richtext字段。奇怪。 –

+0

用這個例子創建一個新的數據庫(這肯定有效)並從那裏開始。 –

相關問題