SPListItem item = List.Items[0]; item["FieldName"] = "Some Value";И лично мне всегда было непонятно, какое из имен поля можно использовать, т.к. у каждого поля есть аж 3 названия - Title,InternalName и StaticName
Сегодня в рефлекторе наткнулся на кусок кода, который дает ответ на этот вопрос:
internal SPField GetField(string strName, bool bThrowException) { this.EnsureFieldsSafeArray(false); SPField fieldByInternalName = this.GetFieldByInternalName(strName, false); if (fieldByInternalName == null) { fieldByInternalName = this.GetFieldByDisplayName(strName, false); } if (((fieldByInternalName == null) && (SPContext.Current != null)) && SPContext.Current.IsDesignTime) { fieldByInternalName = SPContext.Current.ContentType.Fields.GetFieldByInternalName(strName, false); if (fieldByInternalName == null) { fieldByInternalName = SPContext.Current.ContentType.Fields.GetFieldByDisplayName(strName, false); } } if ((fieldByInternalName == null) && bThrowException) { throw new ArgumentException(); } return fieldByInternalName; }Т.е. сначала поле ищется по InternalName, потом по DisplayName, потом внутри контентного типа так же по InternalName ,потом по DisplayName.
Комментариев нет:
Отправка комментария