0

我创建了一个模块产品和内容类型产品。我正在创建一个自定义小部件来显示单个产品。我已经设置了我的设计器,一旦我将小部件放到页面上,我就可以使用 sf-list-selector sf-dynamic-items-selector 从产品列表中进行选择。我的问题是将所选项目 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();

这很好用,可以拉出产品列表。问题是如何使用设计师选择的产品 ID 过滤此列表。我有这个,但它们不匹配:

products.Single(p => p.DataItem.Id == Guid.Parse(selectedProductId))

如何从 ItemViewModel 转到选择器给我的 Id?

使用羽毛 9.1

4

1 回答 1

0

走了一条不同的路。而不是得到一个列表和过滤这样做:

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));
于 2016-07-19T17:43:51.497 回答