0

我有一个站点核心项目“类别”,它有一个填充“产品类型”模板列表的下拉链接。

每个类别都可以有一个“产品类型”。

(在类别节点下创建的产品将使用下拉列表中选择的模板。例如,鞋类将有一个鞋类模板,拖鞋类也将有一个鞋类模板,包类将有一个包包模板)。

问题:

  1. 这些类别应该能够标记相关类别。因此,我需要显示一个树列表类型的控件,它只允许选项选择具有相同“产品类型”的类别。在“鞋子”类别下,我需要有“拖鞋”。我怎样才能做到这一点?

  2. 选择“拖鞋”作为“鞋子”的相关项目后,如果用户尝试更改“拖鞋”中的“产品类型”下拉链接值,如何警告用户该产品类型已链接到另一个类别?(保存类别项目的验证。)

希望这是 Sitecore 中相关项目的常见问题,但我找不到解决方案。

4

1 回答 1

1

你的第一个问题,“标记相关类别”我不清楚你想用它实现什么。但是如果我理解正确的话,你想在 Category-item 中选择一个 product-type-template 让编辑器在 Category-item 下创建所选产品类型的产品。

您可以通过使用 Category-item 上的item:saved 事件来解决此问题: - 首先检查您是否正在保存 Category 类型的项目但检查模板。- 如果是 Category-Item,请读取 product-type droplink 的值,然后将此模板动态添加到 Category 项目的插入选项中。

您检查相关项目的第二个问题只能通过使用 item:saving 事件以相同的方式处理。不是 item:saved 事件,因为您想在保存项目之前进行检查,以便您可以取消保存并通过该Sitecore.Web.UI.Sheer.SheerResponse.Alert()方法显示消息框。在 item:saving 事件中,您需要通过 LinkDatabase 方法检查当前项目是否有 1 个或多个引用者(链接到该项目的项目)Globals.LinkDatabase.GetReferrers()

对此而不是 item:saving 事件使用验证是没有用的,因为验证事件只会引发警告并保存项目。

另一个很好的示例代码链接是John West 的博客

于 2013-03-03T19:39:24.817 回答