【发布时间】:2012-11-12 18:55:03
【问题描述】:
我有几个自定义实体,它们通过多对多关系链接在一起,使用包含一些链接属性的链接实体。为了清楚起见,我们称这些超级英雄和超级恶棍,链接将是战斗。
(Superhero) 1 --------- * (Fight) * -------- 1 (Supervillain)
也就是说,每场战斗都是在 1 个超级英雄和 1 个超级反派之间进行,每个超级英雄/超级反派组合可以进行任意数量的战斗,可能是不同类型的 - 剑、拳头等。
到目前为止所有简单的东西。实际上,我在这里所做的是复制新的“连接”功能,但使用仅适用于超级英雄和超级恶棍的自定义链接类型。这样做的原因是我想在表单左侧将它们显示为单独的导航项,而不是将它们全部放在“连接”下。
现在,在超级英雄表格中,当我查看左侧窗格中的相关实体时,我想显示战斗列表,以及超级英雄正在战斗的超级反派。很简单,我可以自定义“战斗关联视图”来显示战斗类型和超级反派实体。这让我可以直接点击从超级英雄到他正在战斗的超级反派。
但是如果我想从 Supervillain 中做同样的事情呢? Supervillains 也显示相同的“战斗关联视图”,但需要自定义以显示战斗类型和相关的超级英雄......但是,我不想要“一刀切”的关联视图,两者都有超级英雄和超级恶棍领域。
我希望相关视图根据我是在看超级英雄还是超级恶棍而改变。所以我创建了两个新视图,每个视图都有所需的列。我现在可以在选择每个实体中的相关列表时手动切换到这些视图。这很好用,但我不希望每次查看相关战斗时都执行此手动步骤。
所以,最后我要解决问题:我怎样才能自动(即通过脚本,如有必要)选择默认的“关联”视图,该视图将为与超级英雄和超级恶棍,取决于实体类型?
使用表单脚本,我可以很容易地获得导航项,但之后我就迷路了:
function SuperHero_OnLoad()
{
var fightItem = Xrm.Page.ui.navigation.items.get("nav_new_fight");
// What next?!
fightItem.MagicFunctionThatSelectsADefaultViewOrHacksIntoTheIframeParametersOrSomething();
}
注意:我知道我可以在主编辑表单中使用子网格,它可以让您选择要显示的视图,但我不想让更多子表单阻塞表单-网格。我想使用表单左侧的相关树。
【问题讨论】:
-
好的,所以我在文档中找到了here,您可以通过编辑Customizations.xml 中的
<NavBarByRelationshipItem>并添加ViewId属性来选择关系视图。唯一的问题是,这不起作用。这是一个相当大的问题。 -
为了清楚起见,您希望表单左侧的导航项(如果您打开 SuperHero)显示与打开 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应该这样做,但它不适合我。有人有运气吗?
标签: javascript dynamics-crm dynamics-crm-2011