【发布时间】:2012-02-23 21:46:27
【问题描述】:
我正在尝试根据以下 SO 答案创建三个动态填充的 FlyoutAnchor 功能区按钮:Add Dropdown Menu to CRM 2011 ribbon
所有三个 FlyoutAnchor 按钮都使用相同的 PopulateQueryCommand。链接到命令的 JavaScript 函数(参见下面的代码块)获取作为第一个参数传递的 CommandProperties CrmParameter,以便能够识别被单击的弹出按钮(并且应该填充动态添加的下拉菜单)菜单项)。
function DynamicMenu(CommandProperties) {
/// <summary>Dynamically generate menu items based on context</summary>
/// <param name="CommandProperties">
/// Command properties crm parameter sent from the ribbon. object used to inject the Menu XML
/// </param>
debugger;
var menuXml = '<Menu Id=\"Sample.DynamicMenu\">' +
// ... Other menu XML stuff goes here
'</Menu>';
CommandProperties.PopulationXML = menuXml; // error here...PopulationXML is undefined... :-(
// ...
}
该函数被很好地调用并传递了“CommandProperties”参数(它不是null 而不是undefined),但是当我尝试设置PopulationXML 时出现错误,因为这个属性是@987654326 @。下面列出的其他三个预期属性也是undefined:
- SourceControlId:启动事件的 Ribbon 控件的 Id 值。
- CommandValueId:单击按钮时与命令事件一起发送的字符串。
- MenuItemId:从控件到菜单项的 Id 的引用。
当我传入第二个不同的 CrmParameter(例如 PrimaryEntityTypeName)时,此参数已正确填充/设置。
CommandProperties 参数混乱的原因可能是什么?
21-2-2012 更新:为了完整起见,我还尝试了单按钮方法,例如 Add Dropdown Menu to CRM 2011 ribbon 中所述,但结果相同(没有可用的 Commandproperties 对象) .我的 CRM 服务器正在运行 Rollup 6,这可能与它有关吗?有没有不同的方法来获得这种弹出式功能区菜单?也许是纯 JavaScript 的东西?它也应该在 Outlook CRM 客户端中工作......
【问题讨论】:
标签: dynamics-crm dynamics-crm-2011 ribbon ribbon-control flyout