Domanda

dove dovrei "legare" tipi di contenuto per la mia lista?

Ho bisogno di legare due diversi tipi di contenuti personalizzati. Ho cercato di farlo nella definizione lista, ma i cambiamenti non abbiano effetto. Farlo accanto all'istanza di lista ha funzionato, ma non funzionerebbe se creare un nuovo elenco spasimo l'interfaccia utente web.

Avanti per esempio lista
<ListInstance>
</ListInstance>
<ContentTypeBinding ContentTypeId="" ListUrl="">

Ha lavorato, ma solo per il creato dalla definizione CAML.

All'interno della lista template

<List>
  <MetaData>
    <ContentTypes>
      <ContentTypeRef ID=""/>

Ciò non ha funzionato. Nulla di speciale per pensare di qui?

Aggiungi loro attraverso un evento ricevitore

Un metodo mi è venuto in mente, che non ho ancora provato, è quello di aggiungere i tipi di contenuto di Pentecoste un ricevitore di eventi quando si crea la lista? Dovrebbe funzionare, ma si sente più complicato rispetto all'utilizzo CAML.

È stato utile?

Soluzione

Il posto giusto è il modello di elenco (schema.xml). Ma bisogna ripetere la fileref all'interno dell'elemento ContentTypeRef dalla definizione del tipo di contenuto e anche copiare tutti i campi alla sezione Campi nel schema.xml. Quindi per ottenere la lista creata correttamente è necessario creare una nuova istanza lista dopo aver distribuito lo schema elenco aggiornato.

Purtroppo non si può semplicemente collegare la definizione di elenco per un tipo di contenuto.

Ecco un esempio ridotta:

 <List>
  <MetaData>
    <ContentTypes>
      <ContentType ID="0x0100..." Name="...">
        <FieldRefs>
          <FieldRef ID="{993DAADB-918B-4AA1-89F4-34F0B57FD058}" Name="Some Field" />
        </FieldRefs>
      </ContentType>
    </ContentTypes>
    <Fields>
      <Field ID="{993DAADB-918B-4AA1-89F4-34F0B57FD058}" Name="Some Field" />

Altri suggerimenti

Io di solito uso l'ContentTypeBinding Element, quindi progammatically riordinare i tipi di contenuto in modo tale che il mio 'legato' uno è la nuova impostazione predefinita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top