【问题标题】:How can I prevent dojo javascript from being rendered from a custom control with rendered=false?如何防止 dojo javascript 从自定义控件呈现为已呈现 = false?
【发布时间】:2012-03-29 02:10:29
【问题描述】:

这个问题的标题可能看起来有点混乱,但这就是发生在我身上的事情。

首先,我正在使用带有 UP1 的 Notes/Domino 8.5.3。

我有一个 Xpage,里面有一个编辑模式自定义控件。自定义控件中有各种使用 digit.forms 的元素。我试图将自定义控件设置为仅在编辑模式下呈现,但即使它处于读取模式,某些 dojo 元素仍会被呈现。为了测试这一点,我什至将控件设置为 render=false。

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

当我将 XPage 的源与自定义控件进行比较时,Render=false VS 没有自定义控件的 XPage 源,会遇到以下所有差异:

<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 表单元素?

谢谢!

更新

jjtbsomhorst 已修复!它是在自定义控件的加载属性上添加一个条件。

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

谢谢!!

【问题讨论】:

    标签: custom-controls xpages


    【解决方案1】:

    使用loaded 属性并使用viewscope 变量切换元素的加载。这个 viewscope 变量是使用 url 参数填充的。因为您更改了 url,并进行了完全刷新,所以重新评估了加载的属性。我认为这应该会导致 dojo 不渲染,除非加载 dojotype

    【讨论】:

    • 谢谢!加载的属性是解决方案!我只是做了以下这对我有用:
    【解决方案2】:

    您需要在自定义控件本身中设置dojo 模块的rendered 属性。这将在运行时确定是否将模块添加到要呈现的资源列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2012-07-09
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多