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

Dynamics crm CRM 2013/2015/2016子网格弹出,保留fetchxml查询,dynamics-crm,dynamics-crm-2013,dynamics-crm-2016,Dynamics Crm,Dynamics Crm 2013,Dynamics Crm 2016,我的表单上有一个子网格,我使用javascript分配了一个动态生成的fetchxml查询。当用户单击子网格的“弹出”按钮时,查询将丢失,并显示该实体的默认视图 用户需要能够执行多选和批量编辑。据我所知,这对于CRM 2013中的子网格是不可能的。当查询弹出时,是否有方法保留查询?不支持与弹出的网格交互。如果您开始深入研究客户端应用程序代码,您可能会找到新窗口的挂钩,但是这样做不受支持,容易被破坏,我不推荐这样做 我打算建议在重新阅读用户需要使用弹出网格进行批量编辑之前,将实体子网格上的弹出按钮

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


用户需要能够执行多选和批量编辑。据我所知,这对于CRM 2013中的子网格是不可能的。当查询弹出时,是否有方法保留查询?

不支持与弹出的网格交互。如果您开始深入研究客户端应用程序代码,您可能会找到新窗口的挂钩,但是这样做不受支持,容易被破坏,我不推荐这样做

我打算建议在重新阅读用户需要使用弹出网格进行批量编辑之前,将实体子网格上的弹出按钮完全隐藏起来

在这种情况下,您最好的选择是抛弃JS,针对子实体使用RetrieveMultiple插件。检索通常应该避免使用多个插件,但从您的情况来看,这是您唯一的选择

而且,为了彻底了解,您是否确定需要对子网格进行动态获取?有没有什么方法可以让你的观点足够接近你的需求,即使它并不完美

更新: 根据您在评论中提供的其他信息,我只能想到两种选择:

  • 实现一个自定义网格——或者修改其中一个免费网格——允许多选和批量编辑
  • 您的自定义web应用程序接受用户的条件,为用户创建个人视图(实体: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)它不受支持,并且可能在更新时中断

    我想还是值得考虑的


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

    我打算建议在重新阅读用户需要使用弹出网格进行批量编辑之前,将实体子网格上的弹出按钮完全隐藏起来

    在这种情况下,您最好的选择是抛弃JS,针对子实体使用RetrieveMultiple插件。检索通常应该避免使用多个插件,但从您的情况来看,这是您唯一的选择

    而且,为了彻底了解,您是否确定需要对子网格进行动态获取?有没有什么方法可以让你的观点足够接近你的需求,即使它并不完美

    更新: 根据您在评论中提供的其他信息,我只能想到两种选择:

  • 实现一个自定义网格——或者修改其中一个免费网格——允许多选和批量编辑
  • 您的自定义web应用程序接受用户的条件,为用户创建个人视图(实体: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)它不受支持,并且可能在更新时中断

    我想还是值得考虑的


  • 一种更受支持的方法,而不是使用不受支持的getElementById,是将插件挂接到实体的多个检索上,并修改其中的查询


    Chris

    一种更受支持的方法,而不是使用不受支持的getElementById,就是将插件挂接到实体的多个检索上,并修改其中的查询


    Chris

    用户在嵌入为资源的web应用程序中设置过滤器和其他控件。根据这些条件和选择,动态生成fetchxml查询并应用于web应用程序下面的子网格。因此,他们可以实时查看查询从这些条件生成的任何记录,并可以单独或批量对其进行更新。感谢您的建议,我正在研究此网格作为此场景的crm网格替代方案-。不管这是否可行,您的解决方案似乎是最可行的。感谢您的帮助。用户在嵌入为资源的web应用程序中设置过滤器和其他控件。根据这些条件和选择,动态生成fetchxml查询并应用于web应用程序下面的子网格。因此,他们可以实时查看查询从这些条件生成的任何记录,并可以单独或批量对其进行更新。感谢您的建议,我正在研究此网格作为此场景的crm网格替代方案-。不管这是否可行,您的解决方案似乎是最可行的。谢谢你的帮助。