将选择动态内容 ID 匹配到 SiteFinity 中的 ItemViewModel 列表
Matching selecting dynamic content Id to list of ItemViewModel in SiteFinity
我创建了模块产品和内容类型产品。我正在创建一个自定义小部件来显示单个产品。我已经设置了我的设计器,一旦我将小部件放在页面上,我就可以使用 sf-list-select 或 sf-dynamic-items-select 或从产品列表中 select。我的问题是将 selected 项目 ID 与我的小部件拉出的产品列表相匹配。这是小部件用于检索所有产品的代码:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElements = dynamicModuleManager.GetDataItems(contentType).Where(x => x.Status == ContentLifecycleStatus.Live);
products = contentElements.ToArray().Select(p => new ItemViewModel(p)).ToArray();
这很好用,可以调出产品列表。问题是如何使用来自设计师的 selected 产品 ID 来过滤此列表。我有这个,但它们不匹配:
products.Single(p => p.DataItem.Id == Guid.Parse(selectedProductId))
如何从 ItemViewModel 转到 select 或给我的 ID?
使用 Feather 9.1
走了另一条路。这样做不是获取列表和过滤:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElement = dynamicModuleManager.GetDataItem(contentType, Guid.Parse(selectedProductId));
product = new ItemViewModel(dynamicModuleManager.Lifecycle.GetLive(contentElement));
我创建了模块产品和内容类型产品。我正在创建一个自定义小部件来显示单个产品。我已经设置了我的设计器,一旦我将小部件放在页面上,我就可以使用 sf-list-select 或 sf-dynamic-items-select 或从产品列表中 select。我的问题是将 selected 项目 ID 与我的小部件拉出的产品列表相匹配。这是小部件用于检索所有产品的代码:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElements = dynamicModuleManager.GetDataItems(contentType).Where(x => x.Status == ContentLifecycleStatus.Live);
products = contentElements.ToArray().Select(p => new ItemViewModel(p)).ToArray();
这很好用,可以调出产品列表。问题是如何使用来自设计师的 selected 产品 ID 来过滤此列表。我有这个,但它们不匹配:
products.Single(p => p.DataItem.Id == Guid.Parse(selectedProductId))
如何从 ItemViewModel 转到 select 或给我的 ID?
使用 Feather 9.1
走了另一条路。这样做不是获取列表和过滤:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElement = dynamicModuleManager.GetDataItem(contentType, Guid.Parse(selectedProductId));
product = new ItemViewModel(dynamicModuleManager.Lifecycle.GetLive(contentElement));