【问题标题】:Dynamics CRM 2011 - Changing the view for a related entity listDynamics CRM 2011 - 更改相关实体列表的视图
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多