2011-01-21 95 views
0

我试图检索listitem的值,但不断收到ArgumentException - 值不在预期范围内。查询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 overload – Windy 2011-01-21 15:30:31

回答

1

您需要使用的字段INTERNALNAME从SPListItem

result[result.Fields.GetField(Column).InternalName] 
得到其数值
2

如果您从视图(list.GetItems(view))或通过ViewFields属性集的查询获得列表项集合,则可能发生这种情况,在这种情况下,只有View中包含的字段字段被返回。