2011-01-21 8 views
0

Я пытаюсь получить значение listitem, но продолжаю получать ArgumentException. Значение не попадает в ожидаемый диапазон.Querying Sharepoint - значение не попадает в ожидаемый диапазон

Мой код выглядит следующим образом:

if (resultList.Count > 0) 
      { 
       SPListItem result = resultList[0]; 

       if (result[Column] != null) 
       { 
        return result[Column].ToString(); 
       } 
      } 

В ближайшем окне можно проверить столбец существует и значение можно найти в структуре дерева объектов.

result.Fields.GetField(Column).Id 

возвращает Guid, но использовать его для извлечения значения из поля приводит другой ArgumentException:

result[result.Fields.GetField(Column).Id] 
+0

Я нашел причину исключения: я использовал List.GetItems (string) вместо перегрузки SPQuery – Windy

ответ

1

Вы должны использовать InternalName поля, чтобы получить его значение из SPListItem

result[result.Fields.GetField(Column).InternalName] 
2

Это может произойти, если вы получите коллекцию элементов списка из вида (list.GetItems (view)) или из запроса с помощью свойства свойства ViewFields, в этом случае только поля, включенные в представление Поля возвращаются.