2

我試圖創建三個動態填充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客戶端工作...

回答

1

我面臨同樣的問題,該決議是不是使用 「<菜單ID = \‘Sample.DynamicMenu \’>」,用'<菜單ID =「Sample.DynamicMenu」>' 區別在於不使用轉義字符「

+0

刪除轉義字符工作創建子菜單項,這真的很棒!!但我仍然無法獲得屬性就像'CommandProperties.SourceControlId'。所以我不能區分不同的按鈕點擊。作爲一個解決方法,我將不得不爲每個FlyoutAnchor按鈕添加不同的CommandDefinitions。你是否也知道如何獲得這些屬性? – 2012-02-23 12:57:45

+0

感謝您花時間回答我的問題! – 2012-02-23 13:28:08

+0

我知道這是一個遲到的答案,並可能已經認定它已經出來。您可以爲按鈕設置ID,然後檢查ID – Florian 2013-09-23 09:26:49