2013-05-08 69 views
1

我試圖串連在表達式語言的字符串來訪問對象的屬性,並沒有這樣做。串聯參數

在一個XPage在Lotus Notes中,我希望通過編程選擇,我要對當前XPage中的控件綁定的字段。

我想實現的結果如下。

#{poDoc[advertisingDateStart];} 

我有一個名爲fieldName的變量,將提供「advertisingDate」,只是要追加「開始」這個字段和「結束」結束日期字段。我試了幾個變化,不工作,如:

#{poDoc[fieldName{'Start'}];} 

需要注意的是,如果我在「advertisingDateStart」通過和使用

#{poDoc[fieldName];} 

我們的目標是能夠放置開始它的工作日期字段和結束日期字段,同時根據配置文檔進行動態綁定。也就是說,使用配置文件添加字段到我的XPage並重復,而不是改變設計。這裏是我試圖創建結束日期字段的方法之一:

<xp:inputText id="inputText5" 
    style="padding-top:2px;text-align:left"> 
    <xp:this.rendered><![CDATA[#{javascript:rowData.getColumnValue("FieldType") == "Date Range"; }]]></xp:this.rendered> 
    <xp:dateTimeHelper id="dateTimeHelper3"></xp:dateTimeHelper> 
    <xp:this.converter> 
     <xp:convertDateTime type="date"></xp:convertDateTime> 
    </xp:this.converter> 
    <xp:this.value><![CDATA[#{javascript:poDoc[fieldName+"End"];}]]></xp:this.value> 
</xp:inputText> 

我只是無法弄清楚。註釋:

+0

分號在默認表達式語言中無效。 – 2013-05-08 20:08:37

+1

你可以使用一個dataContext來生成所需的字段名,正如Tim在另一個答案中所建議的那樣? http://stackoverflow.com/questions/16155563/dynamic-binding-within-a-repeat-control/16156076#16156076 – 2013-05-08 20:14:33

回答

2

不幸的是,你不能使用 '的javascript' 綁定。在SSJS中,沒有辦法指向你想綁定到組件屬性的'對象屬性'(getter和setter)。

只有表達式語言可以用點表示法做到這一點。

如果你真的需要綁定到動態的領域,你必須使用它作爲每亨利克Lausten建議之前,計算字段名(XP:DataContext的是要走的路)。既然你從一個項目想要兩個日期字段,你應該使用不同的變量的新值,計算使用Javascript

<xp:this.dataContexts> 
    <xp:dataContext var="fieldName"> 
     <xp:this.value> 
     <![CDATA[#{javascript:rowData.getColumnValue ("FieldName");}]]> 
     </xp:this.value> 
    </xp:dataContext> 
    <xp:dataContext var="fieldNameDateStart"> 
    <xp:this.value> 
     <![CDATA[#{javascript:return rowData.getColumnValue ("FieldName") + "Start";}]]> 
    </xp:this.value> 
    </xp:dataContext> <xp:dataContext var="fieldNameDateEnd"> 
    <xp:this.value> 
     <![CDATA[#{javascript:return rowData.getColumnValue ("FieldName") + "End";}]]> 
    </xp:this.value> 
    </xp:dataContext> 
</xp:this.dataContexts> 

字段名會被用於單場項目,而其他人則只能用於啓動日期和結束日期。

+0

啊,是的!由於這兩個問題都是我的,所以我應該想清楚。我正在使用dataContext,但忘記了我可以計算一個新的fieldName變量。我將修改我一直在處理的代碼並將其添加到此答案中。 – 2013-05-09 15:12:42