CRM 2013/2015/2016子网格弹出窗口,保留fetchxml查询

时间:2016-04-18 02:33:00

标签: dynamics-crm dynamics-crm-2013 dynamics-crm-2016

我的表单上有一个子网格,我使用javascript分配动态生成的fetchxml查询。当用户单击子网格的“弹出”按钮时,查询将丢失,并显示该实体的默认视图。

用户需要能够执行多选和批量编辑。据我所知,CRM 2013中的子网格无法实现这一点。有没有办法在弹出时保留查询?

2 个答案:

答案 0 :(得分:1)

没有支持的方式与弹出的网格进行交互。如果您开始深入研究客户端应用程序代码,您可能会找到新窗口的挂钩,但这样做将不受支持,可能会中断,我不会推荐它。

在重新阅读您的用户需要使用弹出的网格进行批量修改之前,我建议完全隐藏实体子网格上的弹出按钮。

在这种情况下,您最好的选择是放弃JS并转移到针对子实体的RetrieveMultiple插件。通常应避免使用RetrieveMultiple插件,但从您的情况来看,它是您唯一的选择。

而且,为了彻底,您是否肯定需要动态获取子网格?有没有什么方法可以提出一个足以满足您要求的视图,即使它并不完美?

<强>更新 根据您在评论中提供的其他信息,我只能想到两个选项:

  1. 实施自定义网格 - 或修改其中一个免费网格 - 允许多选和批量修改
  2. 您的自定义Web应用程序采用用户的标准,为用户创建个人视图(entity:userquery)并将其保存到数据库,然后表单上的JS将网格设置为该视图。

    你可以这样说:

    document.getElementById("someGridId").control.SetParameter("viewtype", "4230"); // 4230 is the objecttypecode for userquery
    document.getElementById("someGridId").control.SetParameter("viewid", "{11310965-0306-E611-80E5-3863BB36DD08}");
    

    实际上这样做使弹出的网格加载个人视图,但在我的测试中,如果你尝试刷新网格,那么网格就会被打乱。

    这种方法有明显的缺点:1)你必须想出一种方法来清理生成的个人视图2)网格可能在刷新时中断3)它不受支持并且可能在更新时中断。

    我想还是值得考虑的。

答案 1 :(得分:1)

更支持的方式而不是使用不受支持的getElementById是将插件挂钩到多个实体检索并在那里修改查询

克里斯