7
我是crm 2011的新手。我找到了關於如何將新按鈕添加到功能區的文檔。以及如何分組按鈕。但我需要功能區中的下拉菜單按鈕。我怎樣才能做到這一點?我沒有找到任何關於此的信息。將下拉菜單添加到CRM 2011功能區
謝謝!
我是crm 2011的新手。我找到了關於如何將新按鈕添加到功能區的文檔。以及如何分組按鈕。但我需要功能區中的下拉菜單按鈕。我怎樣才能做到這一點?我沒有找到任何關於此的信息。將下拉菜單添加到CRM 2011功能區
謝謝!
這應該讓你開始。如果您只需要一個靜態菜單,則可以將該標籤放置在Flyout Control中,然後從此處構建菜單。
<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Static"
Sequence="10"
Command="Mscrm.Enabled"
Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
Image32by32="/_imgs/ribbon/newrecord32.png"
LabelText="Sample Flyout"
Alt="Sample Flyout"
TemplateAlias="isv">
<Menu Id="Sample.account.form.Menu">
<MenuSection Id="Sample.account.form.MenuSection"
Title="Menu Section Title"
Sequence="15">
<Controls Id="Sample.account.form.MenuSection.Controls">
<Button Id="Sample.account.form.Controls.Button.FirstButton"
Command="Sample.ButtonCommand.Command"
LabelText="First Button"
ToolTipTitle="First Button"
ToolTipDescription="The first button"
TemplateAlias="isv"
Sequence="20"/>
</Controls>
</MenuSection>
</Menu>
</FlyoutAnchor>
如果您想動態生成菜單,則可以改爲使用此彈出控件。請注意添加的填充屬性。 然後,你必須通過JavaScript構建菜單。
<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Dynamic"
Sequence="10"
Command="Mscrm.Enabled"
Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
Image32by32="/_imgs/ribbon/newrecord32.png"
LabelText="Sample Flyout"
Alt="Sample Flyout"
PopulateDynamically="true"
PopulateQueryCommand="Sample.PopulateDynamicMenu"
TemplateAlias="isv" />
我創建了兩個訪問javascript函數的命令。 DynamicMenu構建菜單,並使用Search來確定按下哪個按鈕控件。注意這兩個都傳遞了CommandProperties參數,這對於javascript來說很重要。
<CommandDefinition Id="Sample.PopulateDynamicMenu">
<EnableRules>
<EnableRule Id="Mscrm.Enabled" />
</EnableRules>
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName="DynamicMenu"
Library="$webresource:a_JavaScript_File">
<CrmParameter Value="CommandProperties" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
<CommandDefinition Id="Sample.SearchCommand">
<EnableRules />
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName="Search"
Library="$webresource:a_JavaScript_File">
<CrmParameter Value="CommandProperties" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
這裏是JavaScript函數:
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>
var menuXml = '<Menu Id="Sample.DynamicMenu">' +
'<MenuSection Id="Sample.Dynamic.MenuSection" Sequence="10">' +
'<Controls Id="Sample.Dynamic.Controls">' +
'<Button Id="Sample.account.form.Controls.Button.FirstButton"' +
' Command="Sample.SearchCommand"' +
' LabelText="First Button"' +
' ToolTipTitle="First Button"' +
' ToolTipDescription="The first button"' +
' TemplateAlias="isv"' +
' Sequence="20" />' +
'</Controls>' +
'</MenuSection>' +
'</Menu>';
CommandProperties.PopulationXML = menuXml;
}
function Search(CommandProperties) {
///<summary>Determines which control was pressed</summary>
/// <param name="CommandProperties">
/// Command properties crm parameter sent from the ribbon. object used to read which dynamically generated
/// button is selected.
/// </param>
var controlId = CommandProperties.SourceControlId;
switch (controlId) {
case 'Sample.account.form.Controls.Button.FirstButton':
alert(controlId + ' was pressed!');
break;
default:
alert('unknown');
}
}
當我打電話的DynamicMenu功能,我應該怎麼傳遞的參數? (命令屬性) – ThdK 2011-05-02 13:09:44
Crm傳遞你需要的變量。這就是這條XML線對於。在函數中,我只是爲了一致性而使用相同的名稱,您不必這樣做。以下是可以告訴CRM發送的可能參數的列表:http://msdn.microsoft.com/en-us/library/gg309332.aspx –
2011-05-02 23:43:33
爲什麼這不適用於我?我複製粘貼你的第一和第二exmaple的代碼都不適用於crm 2011在我的前提下。打開From時出現XML錯誤。我添加了另一個按鈕的正確位置,我刪除了它 – Florian 2013-08-12 12:44:13