Javascript Dynamics CRM 2011-更改相关实体列表的视图

Javascript Dynamics CRM 2011-更改相关实体列表的视图,javascript,dynamics-crm,dynamics-crm-2011,Javascript,Dynamics Crm,Dynamics Crm 2011,我有两个自定义实体,它们通过多对多关系链接在一起,使用一个包含一些链接属性的链接实体。为了清楚起见,让我们称这些为超级英雄和超级恶棍,而联系将是战斗 (Superhero) 1 --------- * (Fight) * -------- 1 (Supervillain) 也就是说,每一场战斗是在一个超级英雄和一个超级恶棍之间进行的,每个超级英雄/超级恶棍组合可以有任意数量的战斗,可能是不同类型的-剑、拳等 到目前为止,一切都很简单。实际上,我在这里所做的是复制新的“连接”功能,但使用一种只适

我有两个自定义实体,它们通过多对多关系链接在一起,使用一个包含一些链接属性的链接实体。为了清楚起见,让我们称这些为超级英雄和超级恶棍,而联系将是战斗

(Superhero) 1 --------- * (Fight) * -------- 1 (Supervillain)
也就是说,每一场战斗是在一个超级英雄和一个超级恶棍之间进行的,每个超级英雄/超级恶棍组合可以有任意数量的战斗,可能是不同类型的-剑、拳等

到目前为止,一切都很简单。实际上,我在这里所做的是复制新的“连接”功能,但使用一种只适用于超级英雄和超级恶棍的自定义链接类型。这样做的原因是我想在表单的左侧将它们作为一个单独的导航项显示,而不是将它们全部放在“连接”下

现在,从超级英雄表格中,当我查看左侧窗格中的相关实体时,我想显示一个列表,一个战斗列表,以及超级英雄正在战斗的超级恶棍。很简单,我可以定制“战斗关联视图”来显示战斗类型和超级恶棍实体。这让我从超级英雄直接点击到他正在战斗的超级恶棍

但是如果我想对超级恶棍也这么做呢?同样的“战斗关联视图”也适用于超级恶棍,但需要定制以显示战斗类型和相关的超级英雄。。。但是,我不想要一个“一刀切”的关联视图,包括超级英雄和超级恶棍领域

我想根据我是在看超级英雄还是超级恶棍来改变相关的观点。因此,我创建了两个新视图,每个视图都有所需的列。现在,在选择每个实体中的相关列表时,我可以手动切换到这些视图。这很好,但我不希望每次看到相关的战斗时都使用这个手动步骤

因此,最后我要问的问题是:如何根据实体类型自动(如有必要,通过脚本)选择与超级英雄和超级恶棍相关的战斗将显示的默认“关联”视图

使用表单脚本,我可以很容易地获取导航项,但之后我就迷路了:

function SuperHero_OnLoad()
{
    var fightItem = Xrm.Page.ui.navigation.items.get("nav_new_fight");
    // What next?!
    fightItem.MagicFunctionThatSelectsADefaultViewOrHacksIntoTheIframeParametersOrSomething();
}

注意:我知道我可以在主编辑表单中使用子网格,它允许您选择要显示的视图,但我不想用更多子网格阻塞表单。我想使用表单左侧的相关树。

Customizations.xml中的ViewId确实有效,但您提出的问题太早;-)
有一个bug在和上面解决了。更新之前我也遇到了同样的问题。

好的,因此我在文档中发现,您可以通过编辑Customizations.xml中的
并添加
ViewId
属性来选择关系的视图。唯一的问题是,这不起作用。tbh,这是一个很大的问题。为了清楚起见,您希望表单左侧的导航项(如果打开超级英雄)显示与打开SuperVillian表单不同的关联视图?我记得我在网站地图上乱翻了一番,创建了一个类似这样的导航项:http://url/ORG/main.aspx?etn=new_entity&pagetype=entitylist&viewid=%7b550DB1BB-9AF4-42A1-856E-4CAE35A5EB3A%7d&viewtype=1039,这样它就可以直接进入视图。我发现直接指向一个视图似乎有问题(它会在站点中重新打开整个站点)。对。因此,在CRM 2011中有一个新功能,允许用户从列表中的下拉列表中选择1:N关系项的视图。我只希望能够根据父实体的类型指定默认视图
ViewId
应该这样做,但它对我不起作用。有人运气好吗?