FlyOutAnchor按钮在引用多个JS函数时被禁用

时间:2011-05-15 15:03:58

标签: dynamics-crm dynamics-crm-2011

我创建了一个带有多个按钮的静态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>

2 个答案:

答案 0 :(得分:0)

你在做什么看起来很好,所以仔细检查网络资源名称和所有内容。

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

答案 1 :(得分:0)

我发现了一些小事。两个按钮都具有相同的序列号。我会将firstbutton更改为10.其次,在seconnd按钮命令def上没有Mscrm.Enabled规则。

这些丝带喜欢挑剔。