1

我正在尝试使用扩展库中的小部件容器 - 特别是我想添加一个下拉节点,其中包含运行 SSJS 的选项。

在小部件容器中使用基本叶节点时,有两个感兴趣的选项。“onClick”似乎完全符合我的要求。但是,代码会在创建节点时触发 - 而不仅仅是在单击它时。实际上,它似乎一直在燃烧。

还有submitValue。我尝试将代码放在那里,因为 Ext.xml 中有一个示例。第 249 页的图书馆书(SafariBooksOnline 版),但我似乎无法让该代码运行它。

<xe:this.dropDownNodes>
<xe:basicLeafNode label="New Category">
<xe:this.onClick><![CDATA[#{javascript:print("onClick Code")
}]]></xe:this.onClick>
<xe:this.submitValue><![CDATA[#{javascript:print("SubmitValue Code");
sessionScope.put("currentDoc", "");
viewScope.put("showSub", false)
var c = getComponent("dynamic")
c.show("cat")}]]></xe:this.submitValue>
</xe:basicLeafNode>
<xe:basicLeafNode label="Another option"></xe:basicLeafNode>
</xe:this.dropDownNodes>

我要做的是在这个完成的调用代码中设置范围变量,然后更新页面上的动态控件。从理论上讲,我认为我需要部分刷新,但我看不到设置它的方法。

在我给出的代码示例中 - onClick 在未单击事物时运行,而 submitValue - 具有我感兴趣的代码似乎根本没有触发。

任何意见,将不胜感激。谢谢

4

1 回答 1

2

显然在 ApplciationLayout 控件内部,basicLeafNode 的 onclick 方法没有定义放置 SSJS 调用的位置,但实际上定义了运行 CSJS 的位置。submitValue 也是放置值的地方,因此要获得您正在寻找的行为,您应该将 submitValue 设置为“NewCategoryClick”之类的内容,然后在 applicationLayout 下定义一个 eventHandler 子项,以检查是否提交了 Value ==“ NewCategoryClick”然后运行您定义的 SSJS 代码。

于 2012-07-14T12:18:57.083 回答