1

「タイトル」フィールドは封印されています。デフォルト値を更新しようとすると、値が「null」にリセットされます


御時間ありがとうございます。

「RemoveFieldRef と FieldRef をすぐに戻す」という考えは、「Document」または継承されたコンテンツ タイプのインターフェイスを介してプロパティ「Required」と「Default Value」を設定するのと同じですが、構築している場合にあなたの考えが役立ちます。カスタム コンテンツ タイプ。

「タイトル」を必須に設定しても、すべての状況で機能するとは限りません。そのような状況の 1 つは、「新規」からアイテムを追加しようとした場合です (私の場合、Office 2007 に基づくテンプレートが開きます)。

必須フィールドの「タイトル」が難しかったので、「デフォルト値」ルートを試してみたかったのですが、これでもうまくいかないようです。何か助けはありますか?

4

5 に答える 5

3

RemoveFieldRef と FieldRef をすぐに戻すことができます。実際、ドキュメント コンテンツ タイプ自体がこれを行って、タイトルを不要にします。デフォルトの ctypeswss.xml には、ドキュメント コンテンツ タイプに設定されたシール属性はありません。

[12]\TEMPLATE\FEATURES\CTypes\ctypeswss.xml を確認し、32 行目までスクロールして、コンテンツ タイプがこれを行う方法を確認します。

.b

(免責事項:私は高熱を出しているので、意味がわからない場合は、キッチンの周りを走っているロリポップのせいにしてください)

于 2008-12-29T19:32:52.553 に答える
2

これは、追加されたアイテムおよび更新されたアイテムのイベントのコンテンツ タイプに登録するイベント レシーバーを使用して行います。このようにして、新しいアイテムが追加されるたびに、デフォルトのタイトルを付けることができます。次のように、コンテンツ タイプ CAML にイベント レシーバーを登録できます。

  <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

これは、「タイトル」について見つけたものです。

  • 「タイトル」フィールドは 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 に答える