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

时间:2011-06-09 10:32:13

标签: javascript dynamics-crm dynamics-crm-2011

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

(Superhero) 1 --------- * (Fight) * -------- 1 (Supervillain)

也就是说,每次战斗都是在1个超级英雄和1个超级恶魔之间进行,每个超级英雄/超级英雄组合可以有任意数量的战斗,可能是不同类型的 - 剑,拳等等。

到目前为止所有简单的东西。实际上,我在这里所做的是重现新的“连接”功能,但使用仅适用于超级英雄和Supervillains的自定义链接类型。原因是我希望将这些显示为表单左侧的单独导航项,而不是将它们全部放在“连接”下。

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

但是如果我想从Supervillain做同样的事情怎么样?同样的“战斗相关视图”也显示为Supervillains,但需要自定义以显示战斗类型和相关的超级英雄......但是,我不想要“一刀切”的相关视图,两者都有超级英雄和Supervillain领域。

我想根据我是在看Superhero还是Supervillain来改变相关视图。所以我创建了两个新视图,每个视图都有所需的列。我现在可以在选择每个实体中的相关列表时手动切换到这些视图。这很好用,但每次看相关战斗时我都不想要这个手动步骤。

所以,最后我谈到了问题:如何自动(例如通过脚本,如果需要)选择将为战斗相关的默认“关联”视图超级英雄和Supervillains,取决于实体类型?

使用表单脚本,我可以轻松地获取导航项,但之后我迷路了:

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

注意:我知道我可以在主编辑窗体中使用子网格,这样可以选择要显示的视图,但我不想用更多的子项阻塞表单-grids。我想使用表单左侧的Related树。

1 个答案:

答案 0 :(得分:3)

Customizations.xml中的ViewId确实有效,但您过早地提出了问题;-) 在Update Rollup 10及以上版本中有一个错误已得到解决。在更新之前我遇到了同样的问题。