这个问题的标题可能看起来有点令人困惑,但这就是发生在我身上的事情。
首先,我使用Notes / Domino 8.5.3和UP1。
我有一个Xpage,里面有编辑模式自定义控件。在自定义控件中是使用digit.forms的各种元素。我试图将自定义控件设置为仅在编辑模式下呈现,但即使它处于读取模式,某些dojo元素仍在呈现。为了测试这个,我甚至为控件设置了render = false。
<xc:ccEditDocument rendered="false"></xc:ccEditDocument>
当我将XPage的源代码与自定义控件进行比较时,如果渲染= false,则在没有自定义控件的情况下,VS的XP源代码将会遇到以下差异:
<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而导致我的问题(它当然适用于所有其他真实浏览器)。
有没有办法让TRULY让自定义控件不呈现dojo表单元素?
谢谢!
更新
jjtbsomhorst得到了修复!这是为自定义控件的加载属性添加条件。
<xc:ccEditDocument rendered="#{javascript:document1.isEditable()}"
loaded="${javascript:document1.isEditable()}">
</xc:ccEditDocument>
谢谢!
答案 0 :(得分:4)
使用loaded属性并使用viewscope变量切换元素的加载。使用url参数填充此viewscope var。因为您更改了网址并进行了完全刷新,所以会重新评估已加载的属性。我认为除非加载了dojotype,否则这应该导致dojo不呈现
答案 1 :(得分:2)
您需要在自定义控件本身中设置dojo模块的呈现属性。这将在运行时确定是否将模块添加到要呈现的资源列表中。