Orchard 元素编辑器
Orchard Element Editor
我有一个自定义元素,它是 table .
在 Editor
上,管理员选择应将哪个数据源传递给该元素(例如人员列表)。
无论何时重新加载或重新启动页面,Orchard 都不记得放置在布局上的元素包含 Persons 的数据源。
我怎样才能做到这一点? (为元素分配数据源,同类型的另一个元素应该可以获取另一个数据源)
这听起来像是 Projection
元素实现的类似场景,它使用户能够 select 查询作为其数据源。 Projection
元素通过其 Data
字典中的标识符存储 selected 数据源。你需要做同样的事情。例如,如果您想将 selected 数据源存储在 Table 元素的 属性 中,则 属性 实现将如下所示:
public string DataSourceId {
get { return this.Retrieve<string>(x => x.DataSourceId); }
set { this.Store(x => x.DataSourceId, value); }
}
Retrieve
和 Store
方法是 IElement
上的扩展方法,它们只是存储和读取为您序列化的 Data
字典中的值。这是保持自定义元素属性的关键。
我有一个自定义元素,它是 table .
在 Editor
上,管理员选择应将哪个数据源传递给该元素(例如人员列表)。
无论何时重新加载或重新启动页面,Orchard 都不记得放置在布局上的元素包含 Persons 的数据源。
我怎样才能做到这一点? (为元素分配数据源,同类型的另一个元素应该可以获取另一个数据源)
这听起来像是 Projection
元素实现的类似场景,它使用户能够 select 查询作为其数据源。 Projection
元素通过其 Data
字典中的标识符存储 selected 数据源。你需要做同样的事情。例如,如果您想将 selected 数据源存储在 Table 元素的 属性 中,则 属性 实现将如下所示:
public string DataSourceId {
get { return this.Retrieve<string>(x => x.DataSourceId); }
set { this.Store(x => x.DataSourceId, value); }
}
Retrieve
和 Store
方法是 IElement
上的扩展方法,它们只是存储和读取为您序列化的 Data
字典中的值。这是保持自定义元素属性的关键。