我試圖創建三個動態填充FlyoutAnchor區按鈕時,基於CommandProperties CrmParameter沒有正確設置以下SO回答:Add Dropdown Menu to CRM 2011 ribbonDynamics CRM中2011:傳遞給FlyoutAnchor JavaScript函數
所有這三個FlyoutAnchor按鈕使用相同的PopulateQueryCommand。鏈接到該命令的JavaScript函數(請參閱下面的代碼塊)獲取作爲第一個參數傳遞的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:引發事件的Ribbon控件的ID值。
- CommandValueId:單擊按鈕時與命令事件一起發送的字符串。
- MenuItemId:從控件到菜單項的標識的引用。
當我通過在不同的第二CrmParameter,例如PrimaryEntityTypeName,這種說法是否正確填寫/套。
什麼可能是混亂的CommandProperties
論點的原因?
更新21-2-2012:是完整的,我也嘗試了一個按鈕的方式,比如在Add Dropdown Menu to CRM 2011 ribbon描述,但是這給了我同樣的結果(無可用Commandproperties對象)。我的CRM服務器正在運行Rollup 6,也許這與它有關係?有沒有不同的方式來獲得這種彈出式功能區菜單?也許純JavaScript的東西?還應該在Outlook CRM客戶端工作...
刪除轉義字符工作創建子菜單項,這真的很棒!!但我仍然無法獲得屬性就像'CommandProperties.SourceControlId'。所以我不能區分不同的按鈕點擊。作爲一個解決方法,我將不得不爲每個FlyoutAnchor按鈕添加不同的CommandDefinitions。你是否也知道如何獲得這些屬性? – 2012-02-23 12:57:45
感謝您花時間回答我的問題! – 2012-02-23 13:28:08
我知道這是一個遲到的答案,並可能已經認定它已經出來。您可以爲按鈕設置ID,然後檢查ID – Florian 2013-09-23 09:26:49