【问题标题】:SharePoint List Error: "Value does not fall within the expected range"SharePoint 列表错误:“值不在预期范围内”
【发布时间】:2014-10-02 10:30:19
【问题描述】:

您好,我正在使用 SharePoint 命名空间进行开发,当我尝试从我的一个 lsits 中检索 URL 列时遇到了以下错误。

 "Value does not fall within the expected range"

我所做的只是:

item["URL"]

谁能告诉我对此我能做些什么?

【问题讨论】:

  • 您使用哪种语言?

标签: sharepoint list


【解决方案1】:

错误肯定是找不到该字段。

调试进程并查看ListItem.Fields.SchemaXML 属性以找到其内部名称,它可能在内部保存为URL 以外的其他名称。您还可以使用以下方法获取列表项值。

SPField l_field = l_item.Fields.GetField("URL");
string l_fieldValue = l_item[l_field.Id].ToString();

GetField 方法通过 DisplayName 和 InternalName 查找字段。

【讨论】:

  • 我推荐 SharePoint 管理器来查看 SharePoint 中的架构 xml 和其他有趣的东西
  • 两点 - 不要忘记 SPBuiltInFieldId 枚举,并确保如果您使用的是 GetItems 的 SPQuery 版本,则在查询的 部分中包含所需的字段
  • 那么为什么sharepoint不能只说“找不到字段”或类似的东西?也许只有我一个人,但这些错误消息令人沮丧。似乎他们只是让他们的代码出现异常,然后让程序员猜测......
  • +1, @HenryC :我在我的<ViewFields> 中缺少该字段,并且在我尝试使用它时遇到了 OP 的错误。救了我!谢谢。
【解决方案2】:

要获取SPListItem 的网址,请使用Item.Url

【讨论】:

  • 不是我要查找的 URL,我要查找的是我创建的列 URL。
  • 如果它是提升的 InfoPath 列,请尝试停用并重新激活网站的表单模板。我注意到每当我向信息路径模板添加新的提升字段时,我都必须这样做。
【解决方案3】:
    public static string GetItemURLValue(SPListItem item, string fieldName)
    {
        string exit = "";
        SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString());
        exit = link.Url;
        return exit;
    }

【讨论】:

    【解决方案4】:

    这通常意味着“URL”不是列表中的字段。

    如果它是提升的 InfoPath 列,请尝试停用并重新激活网站的表单模板。我注意到每当我向信息路径模板添加新的提升字段时,我都必须这样做。

    【讨论】:

    • 在特定的item 上可能为空?
    【解决方案5】:

    有一种特殊的方法可以检索 URL。试试这个:

    SPListItem li = ...
    SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString());
    return fuv.Url;
    

    【讨论】:

    • 抱歉,我看到 ryan 发布了类似的解决方案。
    【解决方案6】:

    我的是一个 Windows 应用程序。我曾经在创建设置并尝试部署后遇到此异常。

    我的应用程序需要用 Excel 编写,然后保存。我使用了 COM 组件“Microsoft Excel 11.0 对象”的参考。我注意到当我添加这个引用时,实际上有 3 个 dll 出现在我的引用列表中。

    1. Microsoft.office.core
    2. Excel
    3. VBIDE

    我删除了“VBIDE”引用,我的问题解决了。

    【讨论】:

      【解决方案7】:

      如果它只是一个列名并且是“单行文本”格式,那么:

      item["URL"] != null ? item["URL"].ToString() : "Not Found";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多