我们一直在使用this described method of accessing common or shared JavaScript libraries from JavaScript actions defined in the ribbon XML。功能区按钮 - >动态库文件中的JS函数 - >库函数中的JS函数在实体的形式上定义,并且工作得很好。
今天,我尝试从子网格带中为不同的实体遵循相同的模式(添加JS库,将通过功能区调用到实体A的表单。从实体A上的表单,单击实体B链接左边显示实体B的相关实体B的子网格带XML。单击子网格上的按钮 - >动态库文件中的JS功能 - >库文件中的JS功能。)但是出现错误“未定义“在尝试调用实体A表单引用的JS库时。
看起来根据this article,我必须将相应的库添加到我的子网格功能区XML中,或者动态加载网络资源。
有更简单的方法吗?为什么引用表单上的javascript适用于默认的功能区xml,而不适用于子网格?
答案 0 :(得分:3)
为什么引用表单上的javascript工作为默认值 ribbon xml,但不是子网格?
由于脚本加载了实体A的表单,因此当实体B的子网格已加载并替换表单时,它不太可能仍然可用。
在CommandDefinition标记下的Actions部分中添加对javascript webrsource的引用是支持您尝试实现的方法。这将在加载SubGrid功能区时加载脚本。
自定义操作标记中的位置属性将确定何时加载脚本
例如: 位置=" Mscrm。 SubGrid 。{entity name} .WhereEver
位置=" Mscrm。表单。{实体名称} .WhereEver
此外,由于向脚本文件添加断点不适用于动态加载的脚本,因此请在代码中添加调试语句,以便在需要时调用调试器。