Ошибка списка SharePoint: «Значение не попадает в ожидаемый диапазон» - PullRequest
8 голосов
/ 02 марта 2009

Здравствуйте, я занимаюсь разработкой с использованием пространства имен SharePoint, и я столкнулся со следующей ошибкой при попытке извлечь столбец URL из одного из моих lsits.

 "Value does not fall within the expected range"

Все, что я делаю, это:

item["URL"]

Может кто-нибудь сказать мне, что я могу сделать по этому поводу?

Ответы [ 7 ]

8 голосов
/ 03 марта 2009

Ошибка определенно означает, что поле не может быть найдено.

Отладьте процесс и посмотрите на свойство ListItem.Fields.SchemaXML, чтобы найти его внутреннее имя, оно может быть сохранено внутри как что-то отличное от URL. Вы также можете использовать следующий метод, чтобы получить значение элемента списка.

SPField l_field = l_item.Fields.GetField("URL");
string l_fieldValue = l_item[l_field.Id].ToString();

Метод GetField ищет поля как по DisplayName, так и InternalName.

1 голос
/ 29 сентября 2009
    public static string GetItemURLValue(SPListItem item, string fieldName)
    {
        string exit = "";
        SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString());
        exit = link.Url;
        return exit;
    }
1 голос
/ 02 марта 2009

Чтобы получить URL-адрес SPListItem, используйте Item.Url.

0 голосов
/ 02 октября 2014

Если это просто имя столбца и в формате «Одна строка текста», как насчет:

item["URL"] != null ? item["URL"].ToString() : "Not Found";
0 голосов
/ 23 марта 2012

Mine - это приложение для Windows. Раньше я получал это исключение после того, как создал установку и попытался развернуть.

Моему приложению нужно было написать в Excel, а затем сохранить его. Я использовал ссылку на COM-компонент «Microsoft Excel 11.0 Object». Я заметил, что когда я добавляю эту ссылку, на самом деле в моем списке ссылок появляются 3 dll.

  1. Microsoft.office.core
  2. Excel
  3. VBIDE

Я удалил ссылку 'VBIDE', и моя проблема решена.

0 голосов
/ 29 сентября 2009

Существует специальный метод для получения URL. Попробуйте это:

SPListItem li = ...
SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString());
return fuv.Url;
0 голосов
/ 02 марта 2009

Обычно это означает, что «URL» не является полем в списке.

Если это повышенный столбец InfoPath, попробуйте деактивировать и повторно активировать шаблон формы на сайте. Я заметил, что должен делать это всякий раз, когда добавляю новое повышенное поле в шаблон infopath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...