1

在 Orchard 中将列表链接在一起的最佳方法是什么?

例如-我有一份公司清单和一份项目清单。当我创建项目时,我想将它与公司相关联......理想情况下,一个下拉框预先填充了我创建的公司。

最好的方法是什么?

PS我正在使用果园1.3

非常感谢!

4

1 回答 1

0

要查看在编辑器视图中预填充复选框或下拉列表的示例,请查看 Orchard docs 1-N / NN 示例。

要查看通过下拉列表在两个不同部分之间建立关系的示例,请查看 Codeplex 或 Orchard 库上的 FeaturedItemSlider 或 ContentSlider(源自前者)Orchard 模块。

  1. 更新 ProjectPart 以具有 CompanyPart 类型的属性(假设这些是您用于模型的名称)。
  2. 在 Migrations.cs 中,更新 ProjectPartRecord 表,使其具有 int 类型的 CompanyPartRecord_Id 列。Orchard 将使用 NHibernate 设置映射,以便 ProjectPartRecord 表可以连接到 CompanyPartRecord 表。
  3. 更新 ProjectPartDriver 类构造函数,使其具有 IRepository 类型的参数。将实例保存为相同类型的只读类属性(命名为 _companiesRepo)。
  4. 更新 ProjectPartDriver .Editor() 方法以从 _companiesRepo 中提取公司列表。
  5. 更新另一个 ProjectPartDriver .Editor() 方法(处理回发的方法)以将 ProjectPart 的 CompanyPart 属性设置为下拉列表中选择的公司。您使用下拉列表中的公司 ID 从数据库中查找 CompanyPart——我使用 viewModels 使事情变得更容易,所以我的版本如下所示:projectPart.CompanyPart = _companiesRepo.Get(companyId)
  6. 更新 ProjectPart 的 editorTemplate 以呈现下拉列表。

我不确定你打算如何在前端使用这种关系。有两种方法可以解决。(1) 您可以创建一个具有匹配 Route 的自定义控制器,并且在控制器中有代码可以根据您设置的关系查找部件,或者 (2) 在 ProjectPartDriver.Display() 方法中您可以执行使用 IContentManager 查找。

于 2012-04-04T02:28:04.613 回答