如何在WFFM列表字段中访问列表值?

时间:2016-07-20 16:20:18

标签: sitecore web-forms-for-marketers

我试图使用WFFM表单的结果制作一个民意调查结果页面。我最初获取了所有输入的数据(使用AnalyticsFormsDataProvider),查询它,然后显示结果。但是,如果没有人投票给某个特定答案,那么它就不会出现在输入的数据中,因此它不会显示。

我想显示该字段有0票,所以现在我试图比较查询列表的可能答案。但是,我似乎无法找到一种方法来访问列表项的值。有没有人知道这些值存储在哪个类中和/或如何访问它们?

我正在使用WFFM 8.1 rev。 151217(Update-1)与MVC。如果它与其他列表字段有所不同,那么它就是一个无线电列表字段。

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以通过标准API将WFFM字段作为常规Sitecore项目。

可用列表项值保存在"参数"和#34;本地化参数"领域。您可以使用Sitecore.Forms.Core中的Sitecore.Form.Core.Utility.ParametersUtil来解析这些字段中保存的值。

答案 1 :(得分:0)

此数据存储在Radio List字段ItemParameters字段中的Localized Parameters字段SaveAction

如果您的代码位于表单的ValidatorAdaptedResultList内,则您可以访问SaveAction this.classAttributes["fieldid"]Validator中的字段} Radio List。这足以让您获得SaveAction项目,然后获取参数字段。

如果您的代码不在Validator / Datasource,我建议您可以通过<item><item> 将表单项传递到您的代码中,然后从中检索无线电列表项。

最后,您的Radio List字段的Items以

格式存储
var regexItems = new Regex(@"<item>(.*?)</item>".ToLower());
var itemNodes = regexItems.Matches(FieldItem["Parameters"].ToLower());

如果您的广播项目实际上是您想要使用正则表达式解析它们的项目

constuctor(
    private _activatedRoute: ActivatedRoute,
) {}

ngOnInit() 
    this._activatedRoute.params.subscribe(params => console.log(params));
}

然后你应该可以自由地使用你的民意调查清单