Кастомный тип iblockSectionReference.
Смотрим в BXCustomTypeIBlockSectionReference.DbType и видим SqlDbType.Int
А потом идем в edit.aspx.cs в BXCustomTypeIBlockSectionReferenceEdit.Save и видим
Ошибка в том, что редактор сохраняет не массив int'ов, в массив строк.
Мы в своем коде оперируем полями такого типа, читаем и пишем в них. Но они могут быть модифицированы и из админ-зоны. Поэтому наш код приходится затачивать на то, что можем получить либо массив int'ов, либо строк.
Смотрим в BXCustomTypeIBlockSectionReference.DbType и видим SqlDbType.Int
А потом идем в edit.aspx.cs в BXCustomTypeIBlockSectionReferenceEdit.Save и видим
Код |
---|
List<string> selectedValues = new List<string>(); foreach (ListItem item in Value.Items) { if (item.Selected) selectedValues.Add(item.Value); } BXCustomType t = BXCustomTypeManager.GetCustomType(field.CustomTypeId); storage[field.Name] = new BXCustomProperty(field.Name, field.Id, t.DbType, t.IsClonable ? false : field.Multiple, selectedValues.ToArray()); |
Ошибка в том, что редактор сохраняет не массив int'ов, в массив строк.
Мы в своем коде оперируем полями такого типа, читаем и пишем в них. Но они могут быть модифицированы и из админ-зоны. Поэтому наш код приходится затачивать на то, что можем получить либо массив int'ов, либо строк.