我正在尝试使用扩展库中的widget容器 - 特别是我想添加一个下拉节点,其中包含运行SSJS的选项。
在窗口小部件容器中使用基本叶节点时,有两个感兴趣的选项。 “onClick”似乎完全符合我的要求。但是,在创建节点时会触发代码 - 而不仅仅是在单击它时。实际上它似乎一直在发火。
还有submitValue。我尝试将代码放在那里,因为Ext中有一个例子。第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 - 其中包含我感兴趣的代码似乎根本不会触发。
任何建议都将不胜感激。 感谢
答案 0 :(得分:2)
显然在ApplciationLayout控件内部,basicLeafNode的onclick方法没有定义放置SSJS调用的位置,但实际上定义了运行CSJS的位置。此外,submitValue是一个放置值的地方,因此要获得您正在寻找的行为,应将submitValue设置为&#34; NewCategoryClick&#34;然后在applicationLayout下定义一个eventHandler子节点,检查submitValue ==&#34; NewCategoryClick&#34;然后运行您定义的SSJS代码。