我正在尝试向 GridView 上的 CRM 2011 功能区添加一个按钮。我希望针对某些条件有条件地启用或禁用该按钮,这些条件对于网格中的每一行可能有所不同。
我已经设置了 EnableRule,并且对于单选和多选都能正常工作 - 问题是该规则仅在所选项目数量发生变化时才会触发。因此,当用户选择一行时,它第一次起作用,但直到用户选择不同数量的行时才会再次触发 - 即。更改单个选定行不会按预期触发启用规则。
编辑 - 我的启用规则 XML 如下
<EnableRule Id="cnet.exception.grid.EnableReviewButton">
<CustomRule FunctionName="EnableReviewButtonOnGrid" Library="$webresource:cnet_ribbon_js" Default="false">
<CrmParameter Value="SelectedControlSelectedItemIds" />
</CustomRule>
</EnableRule>
更新 好吧,当用户第一次在网格中单击时,该规则会每行触发一次 - 阻止这种情况发生的原因是在启用规则调用的 JS 函数中存在调试“警报”语句。现在只需要弄清楚如何获取正在处理的行的 id...
有什么想法吗...?
谢谢
最佳答案
Now just need to figure out how to get the id of the row that is being processed...
嗨,马特,我不清楚您现在期望脚本做什么。由于这是一条启用规则,因此它将用于通过针对网格中所有选定项目评估条件来启用或禁用功能区按钮。
我相信您正确地选择设置一个CrmParameter来将SelectedControlSelectedItemIds传递给您的启用脚本。我确信您知道(因为您说您的启用规则对于单个选择正确工作)SelectedControlSelectedItemIds 是一个 guid 的字符串数组,这允许您迭代所有选择并针对每个选择共同评估您的规则如果您愿意,请选择项目。
我不清楚的是为什么您需要知道“正在处理”的(大概)单行的 id(即最后选择/取消选择的项目?)。我认为,如果选择中的一项不符合脚本中封装的“启用”标准,则脚本应返回 false,因此隔离最后一个选择是多余的。
我是否误解了您的要求? :-/
关于dynamics-crm - 每次更改行时,网格上的 CRM 2011 功能区启用规则不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10127802/