匹配选择动态内容Id到SiteFinity中的ItemViewModel列表

时间:2016-07-19 17:03:22

标签: sitefinity sitefinity-feather

我创建了一个模块产品和内容类型产品。我正在创建一个自定义小部件来显示单个产品。我已经设置了我的设计器,一旦我将小部件放在页面上,我就可以使用sf-list-selector sf-dynamic-items-selector从产品列表中进行选择。我的问题是将所选项目ID与我的小部件提取的产品列表相匹配。以下是窗口小部件用于检索所有产品的代码:

String.format(Locale.getDefault(), "firstname: %s, lastname: %s", firstName, lastName));

这很好用,并提取产品列表。问题是如何使用设计器中选定的产品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();

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

使用羽毛9.1

1 个答案:

答案 0 :(得分: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));