Dodaję pola do listy programowo. Poniższy wiersz dodaje nowy field'to istniejącej listyJak ustawić wewnętrzną nazwę SPField w programie SharePoint 2010?
Lists.AddFieldToList(warrantyList, SPFieldType.Text, "internalFieldName", "ShownFieldName", "Comment", false, false, false);
Jest to metoda, która nazywa się:
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;
}
po pierwszym wierszu metody pole jest wypełnione dużą ilością informacji , ale bez nazwy wewnętrznej (NULL) i tytułu zawierającego "internalFieldName".
W drugiej linii następujący sposób określany jest jako
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;
}
Następnie tytuł zmieniony na „ShownFieldName” (oczywiście). Ale moim celem jest posiadanie nazwy wewnętrznej "internalFieldName", która ma Displayname "ShownFieldName", więc "ShownFieldName" jest pokazane na Liście, ale mogę uzyskać dostęp do elementu przez wewnętrzną nazwę
jako field.InternalName jest readOnly: How czy mogę rozwiązać ten problem?
Jeszcze raz dziękuję, Marek. Pracował. –