Как проверить, существует ли свойство перед его извлечением, используя SpListItem.Item - PullRequest
2 голосов
/ 10 января 2012

Мне нужно получить значение SplistItem.Item. Появилось новое свойство, в которое было добавлено "ShortenUrl". Проблема в том, что старые страницы не содержат этого свойства, поэтому я получаю сообщение об ошибке «Значение не попадает в ожидаемый диапазон» всякий раз, когда сайт является старой страницей.

Есть ли способ сначала проверить, существует ли предмет? до получения значения?

Вот мой код.

        'Set shortened URL
        Dim objShortUrl As Object = postItemById.Item("ows_ShortenedUrl")
        If objShortUrl IsNot Nothing Then
            blogPost.shortURL = objShortUrl
        Else
            blogPost.shortURL = DBNull.Value
        End If

Что я могу сделать, чтобы сначала проверить, существует ли "ows_ShornedUrl"?

Ответы [ 2 ]

5 голосов
/ 31 июля 2012

SPFieldCollection.ContainsField просто проверяет схему.Вы можете иметь поле, определенное в схеме, и значение все еще может быть нулевым.Если вы знаете, что это в схеме, просто проверьте элемент [fieldName] == null.

if (item.Fields.ContainsField(fieldName) && item[fieldName] != null) {

   //do something with it

}
2 голосов
/ 10 января 2012

Вы можете использовать Item.Fields.ContainsField для проверки.

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