代码之家  ›  专栏  ›  技术社区  ›  Greg Hurlman

查找网站列未保存/存储Office 2007文档的元数据?

  •  0
  • Greg Hurlman  · 技术社区  · 15 年前

    我在几个服务器环境中遇到了这个问题。

    我们在网站集根目录中有一个列表。在该列表的标题字段上有一个创建为多值查找的网站列。此网站列在子网站的文档库中用作必需字段。当我们上载除Office 2007文档以外的任何文档时,都会向用户显示文档元数据填写屏幕(editform.aspx?mode=upload),用户填写适当的数据(包括为此查找选择一个值),然后单击“签入”-文档按预期签入,并填写查找字段的值。

    对于office 2007文档,这是失败的。用户为查找字段选择的值不会发送到服务器-不会引发错误,但该字段不会与文档一起保存。我们在这些文档库上有一个事件侦听器,如果在运行代码的一行之前检查事件侦听器方法上传入的splistitem,就会看到查找字段的值为空。

    对我来说,这闻起来像是一个sharepoint漏洞,但在我给微软打电话之前,有人看到过这种漏洞吗?

    编辑: 我在sp跟踪日志中看到的唯一与此问题相关的条目:

    CMS/Publishing/8ztg/Medium/Got List Item Version, but item was null
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Greg Hurlman    15 年前

    最后不得不向微软开出一张罚单,在msdn文档中发现了一个要引导的bug。

    为了得到一个多选择的查找,我们已经在我们传递给XML的查找字段CAML中将“mult”属性设置为“true” SPFieldCollection.AddFieldAsXml . 然而,尽管api不会抛出错误,但这与office 2007&2010文档及其sharepoint集成的工作方式相冲突。

    官方支持的添加多选择查找字段的方法是在 Field CAML . 执行此操作,并将“mult”属性设置为“true”将得到我正在寻找的结果。

    这个 MSDN documentation for“mult”仍然没有更新sp 2007文档,可以安全地忽略,因为它是完全错误的。

    推荐文章