【发布时间】:2014-10-02 10:30:19
【问题描述】:
您好,我正在使用 SharePoint 命名空间进行开发,当我尝试从我的一个 lsits 中检索 URL 列时遇到了以下错误。
"Value does not fall within the expected range"
我所做的只是:
item["URL"]
谁能告诉我对此我能做些什么?
【问题讨论】:
-
您使用哪种语言?
标签: sharepoint list
您好,我正在使用 SharePoint 命名空间进行开发,当我尝试从我的一个 lsits 中检索 URL 列时遇到了以下错误。
"Value does not fall within the expected range"
我所做的只是:
item["URL"]
谁能告诉我对此我能做些什么?
【问题讨论】:
标签: sharepoint list
错误肯定是找不到该字段。
调试进程并查看ListItem.Fields.SchemaXML 属性以找到其内部名称,它可能在内部保存为URL 以外的其他名称。您还可以使用以下方法获取列表项值。
SPField l_field = l_item.Fields.GetField("URL");
string l_fieldValue = l_item[l_field.Id].ToString();
GetField 方法通过 DisplayName 和 InternalName 查找字段。
【讨论】:
<ViewFields> 中缺少该字段,并且在我尝试使用它时遇到了 OP 的错误。救了我!谢谢。
要获取SPListItem 的网址,请使用Item.Url。
【讨论】:
public static string GetItemURLValue(SPListItem item, string fieldName)
{
string exit = "";
SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString());
exit = link.Url;
return exit;
}
【讨论】:
这通常意味着“URL”不是列表中的字段。
如果它是提升的 InfoPath 列,请尝试停用并重新激活网站的表单模板。我注意到每当我向信息路径模板添加新的提升字段时,我都必须这样做。
【讨论】:
item 上可能为空?
有一种特殊的方法可以检索 URL。试试这个:
SPListItem li = ...
SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString());
return fuv.Url;
【讨论】:
我的是一个 Windows 应用程序。我曾经在创建设置并尝试部署后遇到此异常。
我的应用程序需要用 Excel 编写,然后保存。我使用了 COM 组件“Microsoft Excel 11.0 对象”的参考。我注意到当我添加这个引用时,实际上有 3 个 dll 出现在我的引用列表中。
我删除了“VBIDE”引用,我的问题解决了。
【讨论】:
如果它只是一个列名并且是“单行文本”格式,那么:
item["URL"] != null ? item["URL"].ToString() : "Not Found";
【讨论】: