我有一个自定义元素,它是一个表格。
管理员Editor
上的选择应该将哪个数据源传递给该元素(例如人员列表)。
每当重新加载或重新启动页面时,Orchard都不记得布局中放置的元素包含人员的数据源。
我怎样才能做到这一点? (将数据源分配给元素,具有相同类型的另一个元素应该能够获得另一个数据源)
答案 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); }
}
Retrieve
和Store
方法是IElement
上的扩展方法,只是存储和读取Data
字典中为您序列化的值。这是持久保存自定义元素属性的关键。