Я пытаюсь создать три динамически заполненные кнопки FlyoutAnchor ленты, на основе следующего SO ответа: Add Dropdown Menu to CRM 2011 ribbonDynamics CRM 2011: CommandProperties CrmParameter не установлен правильно, когда передаются функции FlyoutAnchor JavaScript
Все три кнопки 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 я получаю сообщение об ошибке, потому что это свойство undefined
. Остальные три ожидаемые свойства, перечисленные ниже, также undefined
:
- SourceControlId: Значение Id элемента управления ленты, которая инициировала событие.
- CommandValueId: Строка, которая отправляется с событием команды при нажатии кнопки.
- MenuItemId: Ссылка от элемента управления на идентификатор элемента меню.
Когда я пройти во второй другой CrmParameter, например PrimaryEntityTypeName, этот аргумент правильно заполнен/набор.
Что может быть причиной перепутанного аргумента CommandProperties
?
Update 21-2-2012: Для того, чтобы быть полным, я также попробовал одной пуговицей подход, например, как описано в Add Dropdown Menu to CRM 2011 ribbon, но это дало мне тот же результат (Объект не пригоден для использования Commandproperties). Мой CRM-сервер работает с Rollup 6, может быть, что-то с этим связано? Есть ли другой способ получить такое меню всплывающих лент? Может быть, что-то в чистом JavaScript? Она также должна работать в клиенте Перспективы CRM ...
Удаление escape-символов, сработанных для создания элемента подменю, что действительно здорово !!, но я до сих пор не могу получить свойства например «CommandProperties.SourceControlId», поэтому я не могу различать разные нажатые кнопки. В качестве обходного пути мне пришлось бы добавлять разные CommandDefinitions для каждой кнопки FlyoutAnchor. Вы также знаете, как получить эти свойства? –
Спасибо, что нашли время ответить на мой вопрос! –
Я знаю, что это поздний ответ, и, вероятно, он уже понял. Вы можете установить идентификатор для кнопок, а затем проверить идентификаторы – Florian