WFFM - Sitecore:将下拉列表链接到用户个人资料

时间:2015-07-13 05:41:28

标签: c# sitecore web-forms-for-marketers

我使用Sitecore 8 Update 2和WFFM模块。 我使用WFFM创建了一个注册页面,除了下拉列表中的值(邮政编码,城市,性别......)外,一切正常。

我将所有表单字段链接到配置文件字段,但这些值永远不会被填充。我尝试将表单下拉列表链接到配置文件上的下拉字段,链接到配置文件上的简单文本字段,但它从未填写任何表单字段值。

有谁知道这是为什么以及如何链接这些字段?

2 个答案:

答案 0 :(得分:2)

这是WFFM中的一个错误。要解决此问题,请将以下代码添加到您的解决方案中,然后转到项/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Drop List并将字段MVC Type设置为{your namespace}.DropListField,[your dll name}

namespace {your namespace}
{
using System.Collections.Generic;
using System.Linq;

using Sitecore.Data.Items;
using Sitecore.Form.Core.Controls.Data;

/// <summary>
/// The drop list field.
/// </summary>
public class DropListField : Sitecore.Forms.Mvc.Models.Fields.DropListField
{
    /// <summary>
    /// Initialises a new instance of the <see cref="DropListField"/> class.
    /// </summary>
    /// <param name="item">
    /// The item.
    /// </param>
    public DropListField(Item item)
        : base(item)
    {
    }

    /// <summary>
    /// The get result.
    /// </summary>
    /// <returns>
    /// The <see cref="ControlResult"/>.
    /// </returns>
    public override ControlResult GetResult()
    {
        var value = this.Value as List<string>;
        var selectListItem = this.Items.SingleOrDefault(x => x.Value == value.First());
        var str = selectListItem != null ? selectListItem.Text : string.Empty;
        return new ControlResult(this.ID.ToString(), this.Title, selectListItem != null ? selectListItem.Value : string.Empty, str);
    }
}
}

答案 1 :(得分:0)

听起来可能是这个错误:

http://www.cmsbestpractices.com/bug-sitecore-8-with-web-forms-for-marketers-drop-list-entries-not-being-properly-recorded-in-xdb/

使用Robomongo检查值是否在MongoDB中正确存储。