1

“标题”字段是密封的。任何更新默认值的尝试都会将该值重置为“null”


谢谢你的时间。

您执行“RemoveFieldRef and FieldRef it right back in”的想法与通过“文档”或继承的内容类型的接口设置属性“必需”和“默认值”相同,但如果我们正在构建,您的想法会有所帮助自定义内容类型。

将“标题”设置为必需并不适用于所有情况。一种这样的情况是当您尝试通过“新建”添加项目时(在我的情况下,它会打开一个基于 Office 2007 的模板)。

由于必填字段的“标题”让我很难过,我想尝试“默认值”路线,但即使这个路线似乎也不起作用。有什么帮助吗?

4

5 回答 5

3

您可以立即将其 RemoveFieldRef 和 FieldRef 重新放入。实际上,文档内容类型本身就是这样做的,以使标题不再是必需的。在默认的 ctypeswss.xml 中,没有在 Document 内容类型上设置密封属性。

查看 [12]\TEMPLATE\FEATURES\CTypes\ctypeswss.xml 并向下滚动到大约第 32 行以查看内容类型如何执行此操作。

.b

(免责声明:我正在发高烧,所以如果我没有任何意义,请怪罪在我厨房周围跑来跑去的棒棒糖)

于 2008-12-29T19:32:52.553 回答
2

使用您为添加的项目和更新的事件的内容类型注册的事件接收器执行此操作。这样,每当添加新项目时,都可以为其指定默认标题。您可以在 Content Type CAML 中注册 Event Recievers,如下所示:

  <ContentType ...>
    <FieldRefs>
      <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="My Title" Required="FALSE" ShowInDisplayForm="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE" ShowInListSettings="FALSE"/>
    </FieldRefs>
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
        <Receivers>
          <Receiver>
            <Name>TitleCreator</Name>
            <Type>ItemAdded</Type>
            <Assembly>...</Assembly>
            <Class>TitleCreatorItemEventReceiver</Class>
          </Receiver>
          <Receiver>
            <Name>TitleCreator</Name>
            <Type>ItemUpdated</Type>
            <SequenceNumber>1</SequenceNumber>
            <Assembly>...</Assembly>
            <Class>TitleCreatorItemEventReceiver</Class>
          </Receiver>
        </Receivers>
      </XmlDocument>
    </XmlDocuments>
  </ContentType>
于 2009-01-02T21:10:50.160 回答
1

这是我们为“标题”找到的:

  • “Title”字段未在 fieldwss.xml (12\TEMPLATE\FEATURES\fields) 中密封
  • 它没有在 ctypeswss.xml (12\TEMPLATE\FEATURES\ctypes) 中的“文档”内容类型下密封
  • 它被封装在 schema.xml (12\TEMPLATE\FEATURES\DocumentLibrary\DocLib) 中的文档库定义中

通过 OM 设置默认值会将内容类型 .Update() 上的值重置为 NULL。这是因为“标题”在 DL 定义中是密封的。

向 MS 提出服务请求。等待结果!!!

于 2009-01-09T21:27:05.170 回答
0

嗯...如果您不做自定义内容类型,那么我建议您通过功能接收器做您想做的事情。您可以将该接收器附加到默认文档内容类型并根据需要处理您的列,例如设置默认值或仅在未提供用户值时设置默认值。

.b

于 2008-12-30T06:21:01.870 回答
0

这种方法适用于所有字段,除了隐藏的“标题”字段似乎真的很特别

于 2008-12-30T17:20:41.507 回答