果园元素编辑器

时间:2018-02-28 11:02:03

标签: c# orchardcms

我有一个自定义元素,它是一个表格。

管理员Editor上的

选择应该将哪个数据源传递给该元素(例如人员列表)。

每当重新加载或重新启动页面时,Orchard都不记得布局中放置的元素包含人员的数据源。

我怎样才能做到这一点? (将数据源分配给元素,具有相同类型的另一个元素应该能够获得另一个数据源)

1 个答案:

答案 0 :(得分:0)

这听起来像Projection元素实现的类似场景,它允许用户选择Query作为其数据源。 Projection元素通过其Data字典中的标识符存储所选数据源。你需要做同样的事情。例如,如果要将所选数据源存储在Table元素的属性中,则该属性实现将如下所示:

public string DataSourceId {
   get { return this.Retrieve<string>(x => x.DataSourceId); }
   set { this.Store(x => x.DataSourceId, value); }
}

RetrieveStore方法是IElement上的扩展方法,只是存储和读取Data字典中为您序列化的值。这是持久保存自定义元素属性的关键。