2012-01-10 2 views
2

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

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

Это мой код.

 '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_ShortenedUrl»?

ответ

2

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

5

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

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

    //do something with it 

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