Я использую действие сохранения Create Item в веб-форме. У меня есть список флажков, указывающий на папку, содержащую элементы категории. Это отображается в поле Multilist в шаблоне элемента, который он будет создавать, когда пользователь отправит форму. Но он передает текст флажка, а не значение, поэтому у мультилиста для каждого созданного нового элемента есть плохие данные. Кто-нибудь знает, как установить список флажков для передачи значений вместо этого? Я немного удивлен, что это делает это в первую очередь.Значения флажков Sitecore WFFM на Create Item
ответ
У меня не было возможности проверить это, но теоретически вы можете создать новый тип поля, который наследуется от CheckboxList
, и предположим, что мы называем это CheckboxListPipedValues
. Код будет выглядеть примерно так:
using System.ComponentModel;
using System.Linq;
using System.Text;
using Sitecore.Form.Core.Controls.Data;
using Sitecore.Form.Web.UI.Controls;
public class CheckboxListPipedValues : Sitecore.Form.Web.UI.Controls.CheckboxList
{
[Browsable(false)]
public override ControlResult Result
{
get
{
StringBuilder stringBuilder1 = new StringBuilder();
var checkedItems = this.InnerListControl.Items.Where(a => a.Selected).ToList();
var values = string.Join("|", checkedItems.Select(c => c.Value));
foreach (var item in checkedItems)
{
stringBuilder1.AppendFormat("{0}, ", item.Text);
}
return new ControlResult(this.ControlName, values, stringBuilder1.ToString(0, (stringBuilder1.Length > 0 ? stringBuilder1.Length - 2 : 0)));
}
}
}
В Sitecore, просто пойти в /sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/List Types/Checkbox List
и дублировать этот элемент. Затем измените сборку и класс на новый элемент управления. Измените форму, чтобы использовать новое поле, и убедитесь, что значения правильно сопоставлены. Теперь вывод значения должен быть списком, разделенным по каналам, которые должны хорошо работать с полем мультилиста.
EDIT: Для MVC, это тот же самый процесс, но вам необходимо обновить MVC Type
в элементе типа поле, чтобы указать на новый класс. Код для MVC должен выглядеть примерно так:
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Form.Core.Controls.Data;
using Sitecore.Forms.Core.Data;
using Sitecore.Forms.Mvc.Data.TypeConverters;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Web.Mvc;
public class CheckBoxListPipedField : CheckBoxListField
{
public CheckBoxListPipedField(Item item) : base(item)
{
}
public override ControlResult GetResult()
{
var values = new List<string>();
StringBuilder stringBuilder1 = new StringBuilder();
if (this.Items != null)
{
foreach (SelectListItem selectListItem in
from item in this.Items
where item.Selected
select item)
{
values.Add(selectListItem.Value);
stringBuilder1.AppendFormat("{0}, ", selectListItem.Text);
}
}
var results = string.Join("|", values);
return new ControlResult(base.ID.ToString(), base.Title, results, stringBuilder1.ToString(0, (stringBuilder1.Length > 0 ? stringBuilder1.Length - 2 : 0)));
}
}
- 1. Sitecore - обновление WFFM
- 2. WFFM на Sitecore 7.0 версия
- 3. Формы WFFM Sitecore 8,0
- 4. Sitecore WFFM: CacheOutputDuration
- 5. Sitecore - WFFM - Каскадные списки отказов
- 6. Данные поля слежения SItecore WFFM?
- 7. Sitecore WFFM с конфиденциальными данными
- 8. Extend Sitecore Тип поля WFFM
- 9. Sitecore WFFM проверить дубликат email
- 10. Как передать параметры формам в Sitecore WFFM
- 11. Ссылка на Sitecore Media Item
- 12. Создать ссылку на Sitecore Item
- 13. Sitecore WFFM SendEmailMessage ошибка SMTP Authentication Password
- 14. Неполадки обнаружения ошибок Captcha в Sitecore WFFM
- 15. Sitecore WFFM MVC пользовательского кросс управления проверка
- 16. Sitecore WFFM порядок полей для различных языков
- 17. Sitecore WFFM - Как вызвать внешнюю форму
- 18. Невозможно использовать WFFM с использованием Sitecore MVC
- 19. Sitecore Item is Null
- 20. Sitecore WFFM custom save action не называется
- 21. Ошибка Sitecore WFFM в базе данных
- 22. Sitecore 6 WFFM: как настроить отчеты?
- 23. WFFM Image Загруженное событие Sitecore 8
- 24. Sitecore WFFM - исправление неправильных названий мастеров
- 25. Sitecore WFFM требуется 1 из 2 полей
- 26. Sitecore Web Forms for Marketers 2.4 (WFFM)
- 27. Как продлить Sitecore WFFM, чтобы включить ярлык?
- 28. Sitecore WFFM: вопросы, передаваемые формы программно
- 29. Sitecore Unicorn item synchronization
- 30. SiteCore Item Serialization
Спасибо! Я думаю, что это сработает, но я использую MVC, поэтому мне нужно внести некоторые изменения в этот код. У меня возникли проблемы с выбором проверок. Если у вас есть предложения о том, как переписать его для MVC, я был бы признателен! –
@JasonDavidson, я добавил версию MVC. Дайте мне знать, если это сработает для вас. –
Хорошо, почти там. 2 вещи: Sitecore.Forms.Mvc.Data.TypeConverters не существует. Должно ли это быть TypeProviders? И когда я его создаю, я получаю следующую ошибку: Sitecore.Forms.Mvc.Models.Fields.CheckBoxListField не содержит конструктор, который принимает 0 аргументов. –