2012-03-27 63 views
0

這個問題的標題可能看起來有點混亂,但這裏是發生在我身上的事情。如何防止從呈現= false的自定義控件呈現dojo javascript?

首先,我使用Notes/Domino 8.5.3和UP1。

我有一個Xpage,裏面有一個編輯模式的自定義控件。在自定義控件中使用digit.forms的各種元素。我曾嘗試將自定義控件設置爲僅在編輯模式下呈現,但即使處於讀取模式,某些dojo元素仍處於呈現狀態。爲了測試這個,我甚至將它設置爲對於控件呈現= false。

<xc:ccEditDocument rendered="false"></xc:ccEditDocument> 

當我比較與自定義控制的XPage的源,在所有遇到以下區別渲染=假VS XPage上的源與NO定製控制:

<script type=」text/javascript」 src=」/xsp/.ibmxspres/dojoroot-1.6.1/ibm/xsp/widget/layout/layers/xspClientDojoUI.js」></script> 
<script type=」text/javascript」>dojo.require(’dijit.form.Form’)</script> 

enctype=」multipart/form-data」 dojoType=」dijit.form.Form」 

這對我來說實際上是造成了一個問題,IE8和iFRAME呈現PDF(當然它適用於所有其他真實瀏覽器)。

有沒有一種方法可以讓自定義控件不呈現dojo表單元素?

謝謝!

UPDATE

jjtbsomhorst有修復!它是爲自定義控件的加載屬性添加一個條件。

<xc:ccEditDocument rendered="#{javascript:document1.isEditable()}" 
loaded="${javascript:document1.isEditable()}"> 
</xc:ccEditDocument> 

謝謝!!

回答

4

使用loaded屬性並使用viewcope變量切換元素的加載。這個viewcope var是使用url參數填充的。因爲您更改了網址並進行了全面刷新,所以加載的屬性會被重新評估。我認爲這應該會導致dojo不會渲染,除非dojotype被加載

+0

謝謝!加載的屬性是解決方案!我只是做了以下就是這個工作對我來說: \t \t \t \t 2012-03-28 18:07:40

2

您需要在自定義控件本身中設置dojo模塊的渲染屬性。這將在運行時確定是否將模塊添加到要呈現的資源列表中。