2013-09-22 1 views
0

Я хочу добавить вложение к некоторым указанным элементам списка, я использовал функцию SPlist.GetItems (SPQuery), чтобы получить элемент списка цели, так как там много столбцов в списке. Чтобы ограничить возвращаемые столбцы, я определил ViewFields, как показано ниже, и установил для свойства «ViewFieldsOnly» значение SPQuery «true».sharepoint error "value не входит в ожидаемый диапазон" при добавлении вложения в элемент списка

query.ViewFields = "<FieldRef Name='Attachments' />"; 

я правильно получил элемент списка и свойство «Вложения» возвращаемого объекта SPListItem не является нулевым. Однако, после того, как я использовал SPListItem.Attachments.Add() и пытается вызвать SPListItem.Update(), ошибка

«Значение не попадает в ожидаемый диапазон» происходит.

Посмотрев в этот вопрос, я обнаружил, что если «ViewFieldsOnly» свойство SPQuery установлено значение «false», эта ошибка не будет происходить, и вложение будет загружено успешно. Но это вернет все столбцы элемента «Список» и заставит мою программу работать медленнее.

Итак, мой вопрос в том, есть ли «обязательный» столбец, который может заблокировать вложения от присоединения к элементу списка?

+0

Возможно, ID необходим? – trigras

+0

Я добавил, что все поля включают «ID» и «Создано» в ViewFields, но не повезло, эта ошибка все еще существует. – cpyd

ответ

1

Я столкнулся с той же ошибкой, но я догадался, что из-за udpate требуется еще несколько полей.
Я нашел blog и согласен с этим.

Так что оставить ViewFieldsOnly по умолчанию (false) является единственным выбором в случае обновления.

Смежные вопросы