您好我正在使用SharePoint命名空间进行开发,当我尝试从我的某个lsits中检索URL列时遇到以下错误。
"Value does not fall within the expected range"
我所做的只是:
item["URL"]
有人可以告诉我我能做些什么吗?
答案 0 :(得分:8)
错误肯定意味着无法找到该字段。
调试流程并查看ListItem.Fields.SchemaXML
属性以查找其内部名称,它可以在内部保存为URL
以外的其他内容。您还可以使用以下方法获取列表项值。
SPField l_field = l_item.Fields.GetField("URL");
string l_fieldValue = l_item[l_field.Id].ToString();
GetField
方法通过DisplayName和&amp ;;查找字段。 INTERNALNAME。
答案 1 :(得分:1)
要获取SPListItem
的网址,请使用Item.Url
。
答案 2 :(得分:1)
public static string GetItemURLValue(SPListItem item, string fieldName)
{
string exit = "";
SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString());
exit = link.Url;
return exit;
}
答案 3 :(得分:0)
这通常意味着“URL”不是列表中的字段。
如果是推荐的InfoPath列,请尝试停用并重新激活表单模板到站点。我注意到每当我向infopath模板添加一个新的提升字段时我都必须这样做。
答案 4 :(得分:0)
有一种检索网址的特殊方法。试试这个:
SPListItem li = ...
SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString());
return fuv.Url;
答案 5 :(得分:0)
我是一个Windows应用程序。在创建设置并尝试部署之后,我曾经遇到此异常。
我的应用程序需要在Excel中编写然后保存。我使用了COM组件&Microsoft Excel 11.0 Object'的引用。我注意到当我添加此引用时,实际上我的引用列表中出现了3个dll。
我删除了' VBIDE'参考和我的问题解决了。
答案 6 :(得分:0)
如果它只是一个列名和“单行文本”格式,那么:
item["URL"] != null ? item["URL"].ToString() : "Not Found";