Я добавляю поля в список программно. Следующая строка добавляет новое поле к существующему списку
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;
}
после первой строки метода поле заполняется большим количеством информации, но без имени InternalName (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 только для чтения: как я могу решить эту проблему?