Я добавляю поля в список программно. строка добавляет новое поле к существующему списку
Lists.AddFieldToList(warrantyList, SPFieldType.Text, "internalFieldName", "ShownFieldName", "Comment", false, false, false);
Это метод, который вызывается:
public static bool AddFieldToList(SPList list, SPFieldType fieldType, string fieldInternalName, string fieldDisplayName, string fieldDescription, bool unique, bool required, bool indexed)
{
SPField field = new SPField(list.ParentWeb.Fields, fieldType.ToString(), fieldInternalName);
bool success = AddFieldToList(list, field, fieldDisplayName, fieldDescription, unique, required, indexed);
return success;
}
после первой строки метода поле заполняется большим количеством информации, но не внутренним именем (NULL) и заголовком который содержит "internalFieldName".
Во второй строке вызывается следующий метод:
public static bool AddFieldToList(SPList list, SPField field, string fieldDisplayName, string fieldDescription, bool unique, bool required, bool indexed)
{
if (field != null &&
(!list.Fields.Contains(field.Id)))
{
field.ReadOnlyField = false;
field.Title = fieldDisplayName;
field.Description = fieldDescription;
field.EnforceUniqueValues = unique;
field.Indexed = indexed;
field.Required = required;
list.Fields.Add(field);
return true;
}
return false;
}
После этого заголовок меняется на «ShownFieldName» (естественно). Но моя цель - иметь внутреннее имя «internalFieldName», которое имеет отображаемое имя «ShownFieldName», поэтому «ShownFieldName» отображается в списке, но я могу получить доступ к элементу по внутреннему имени
как field.InternalName доступно только для чтения: как можно Я решил эту проблему?