0

我创建了一个带有多个按钮的静态 FlyOut 控件。单击这些按钮时,应该触发不同的 JS。我为每个 JS 函数创建了 Commanddefinition,并在按钮控件中引用了它们。但是,我的按钮被禁用了。如果所有按钮都引用相同的 commanddefinition/js 函数,则可以正常工作。我错过了什么?任何帮助将不胜感激。这是我的代码:

<RibbonDiffXml>
    <CustomActions>
        <CustomAction Id="Add_Dynamic_Menu"
            Location="Mscrm.Form.new_test.MainTab.Workflow.Controls._children">
            <CommandUIDefinition>
                <FlyoutAnchor Id="Sample.new_test.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.new_test.form.Menu">
                        <MenuSection Id="Sample.new_test.form.MenuSection"
                            Title="Menu Section Title" Sequence="15">
                            <Controls Id="Sample.new_test.form.MenuSection.Controls">
                                <Button Id="Sample.new_test.form.Controls.Button.FirstButton"
                                    Command="Sample.FirstButtonComand" LabelText="First Button"
                                    ToolTipTitle="First Button"
                                    ToolTipDescription="The first button" TemplateAlias="isv"
                                    Sequence="20"/>
                                <Button Id="Sample.new_test.form.Controls.Button.SecondButton"
                                    Command="Sample.SecondButtonCommand" LabelText="Second Button"
                                    ToolTipTitle="Second Button"
                                    ToolTipDescription="The Second button" TemplateAlias="isv"
                                    Sequence="20"/>

                            </Controls>
                        </MenuSection>
                    </Menu>
                </FlyoutAnchor>
            </CommandUIDefinition>
        </CustomAction>
    </CustomActions>
    <Templates>
        <RibbonTemplates Id="Mscrm.Templates"/>
    </Templates>
    <CommandDefinitions>
        <CommandDefinition Id="Sample.FirstButtonCommand">
            <EnableRules>
                <EnableRule Id="Mscrm.Enabled"/>
            </EnableRules>
            <DisplayRules/>
            <Actions>
                <JavaScriptFunction FunctionName="testfirstbutton"
                    Library="$webresource:new_testfirstbutton"> </JavaScriptFunction>
            </Actions>
        </CommandDefinition>
        <CommandDefinition Id="Sample.SecondButtonCommand">
            <EnableRules/>
            <DisplayRules/>
            <Actions>
                <JavaScriptFunction FunctionName="testsecondbutton"
                    Library="$webresource:new_testsecondbutton"> </JavaScriptFunction>
            </Actions>
        </CommandDefinition>
    </CommandDefinitions>
    <RuleDefinitions>
        <TabDisplayRules/>
        <DisplayRules/>
        <EnableRules/>
    </RuleDefinitions>
    <LocLabels/>
</RibbonDiffXml>
4

2 回答 2

0

我注意到了几件小事。您的两个按钮具有相同的序列号。我会将 firstbutton 更改为 10。其次,您没有第二个按钮命令 def 上的 Mscrm.Enabled 规则。

这些丝带喜欢挑剔。

于 2011-05-20T16:19:42.370 回答
0

您所做的看起来不错,因此请仔细检查网络资源名称和所有内容。

一种故障排除方法 1) 将所有内容切换到有效的 webresource/function 2) 将另一个函数添加到 JavaScript webresource 并查看它是否仍然有效(如果失败,则它是 javascript 函数)。3) 将 FunctionName 之一切换到第二个函数,同时保持 websresource 相同。

于 2011-05-17T16:41:03.210 回答