【问题标题】:Disable a ribbon button with a plugin使用插件禁用功能区按钮
【发布时间】:2011-12-06 16:15:43
【问题描述】:

我正在开发 CRM 2011(新手...),并创建了一个插件来检查事件是否有活动记录。如果没有活动记录,则事件无法解决。

我在对话框中启动了一个自定义按钮,向用户询问了几件事,然后将事件状态设置为已解决。

只要没有活动记录,我想要禁用此按钮...

我怎么能这样做?

提前谢谢

【问题讨论】:

    标签: c# plugins dynamics-crm-2011


    【解决方案1】:

    我不确定这是可以为功能区按钮设置的规则。

    These are the rules 您可以在功能区按钮上设置,但我看不到允许您根据相关实体计数禁用的选项。

    我在编辑任何功能区时使用this,所以我可能会玩一下,看看你是否可以做你需要做的事情。

    我的预感是在对话框的第一步中执行获取查询,如果返回结果为 0(即查询找到相关的活动记录)以结束对话框。

    【讨论】:

    • 这太棒了!非常感谢你 !再问一个问题,您是否知道我是否可以添加一条个性化消息,向该用户解释对话结束的原因?再次感谢!
    • 通过查看 Ckellers 的答案,似乎在我输入答案的链接中有一个 Custom Rule 类型,基于 javascript,您可以根据自己的逻辑决定返回 true 或 false ,如果没有活动记录,这会给你你的禁用行为。如果您只想在结束对话之前输出一条消息,只需使用提示和响应。输入您的消息,但不允许使用响应类型。
    • 好的,伙计们,我已经尝试了这两种方法并决定使用该对话框,以与我的解决方案的其余部分保持相同的逻辑。非常感谢!
    • +1 用于指向可视功能区编辑器的链接。看起来很有希望。
    【解决方案2】:

    你不能用插件做到这一点。插件在服务器端执行。

    您想要实现的是根据特定条件更改 UI。您可以为此使用自定义 EnableRule。在此规则中,您可以引用 CustomRule,它基本上是对 Web 资源中 JavaScript 函数的引用。在此脚本中,您可以评估上下文(FetchXml 请求/OData)并决定规则是否应评估为真/假,从而启用/禁用功能区元素。

    【讨论】:

    • 对,这听起来也是个不错的方法。我也会试试的。谢谢
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2015-02-23
    • 2022-10-12
    • 1970-01-01
    • 2017-12-11
    • 2012-02-29
    • 2015-01-08
    相关资源
    最近更新 更多