链接Orchard CMS中的列表

时间:2012-04-04 00:50:34

标签: orchardcms

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

例如 - 我有一个公司列表和一个项目列表。当我创建项目时,我希望将其与公司相关联...理想情况下,这是一个预先填充了我创建的公司的下拉框。

最好的方法是什么?

P.S。我正在使用Orchard 1.3

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

要查看通过下拉列表在两个不同部分之间建立关系的示例,请查看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属性设置为在下拉列表中选择的公司。您可以使用droplist中的公司ID从db中查找CompanyPart - 我使用viewModels来简化操作,因此我的版本如下所示:projectPart.CompanyPart = _companiesRepo.Get(companyId)
  6. 更新ProjectPart的editorTemplate以呈现删除列表。
  7. 我不确定你打算如何在前端使用这种关系。有两种方法可以解决它。 (1)你可以创建一个匹配Route的自定义控制器,并在控制器中有代码根据你设置的关系查找部件,或者(2)在ProjectPartDriver.Display()方法中你可以做使用IContentManager进行查找。