2011-09-13 10 views
5

cerco di aggiungere campo di ricerca in tipo di contenuto Field ha questa definizione:.Sharepoint campo di ricerca e WebID ="

<Field ID="{c80e8e3c-7124-4772-a39d-5b69f131d542}" 
     Name="Site" 
     Group="Tieto Intranet Columns" 
     Type="Lookup" 
     DisplayName="Site" 
     StaticName="Site" 
     List="Lists/FavoriteSites" 
     ShowField="Title" 
     PrependId="TRUE" 
     WebId="~sitecollection" 
    > 

lista FavoriteSites, che voglio di riferimento da questo campo di ricerca, esiste sulla portata raccolta siti La distribuzione va bene, ma quando creo un elenco basato sul tipo di contenuto con questa ricerca sembra che il campo di ricerca non sia collegato all'elenco dei Preferiti. Aggiungo alcuni dati in FavoriteSites e cerco di aggiungere qualcosa al secondo elenco con il campo di ricerca su FavoriteSites .Purtroppo selezionare a discesa, che dovrebbe mostrarmi i dati dalla lista FavoriteSites è vuota

Quando I creare manualmente una nuova colonna di ricerca su FavoriteSites, tutto è OK.

Qualcuno ha qualche idea di dove può essere un problema in questa definizione di ricerca?

UPDATE:

Come Rich mi ha raccomandato, ho impostato il livello su un registro dettagliato trovare questo messaggio:

Il WebID = ~ sitecollection e list = lists/attributi FavoriteSites specificati per il campo {c80e8e3c-7124- 4772-a39d-5b69f131d542} nella funzionalità {d86c7005-d31d-43ae-b86b-38f28b81072e} non è stato trovato. Imposta lista = {39CEC23E-FB28-47B3-BC36-C21780AD1D94}.

Non capisco perché esiste la lista FavoriteSites. L'elenco Preferiti e anche il secondo elenco con il campo Sito sono distribuiti da una funzione sull'ambito della raccolta siti.

Non riesco a specificare l'elenco in ricerca da GUID perché non conosco il guid nel tempo di implementazione.

+1

Cerca i registri SP (i registri di livello dettagliato richiesti) al momento dell'attivazione della funzione per il seguente messaggio: "Gli attributi WebId = ~ sitecollection e List = Lists/FavoriteSites specificati", quindi aggiorna la domanda con la seconda metà di il messaggio. –

+0

Grazie per il tuo commento Rich, ho trovato questo messaggio e ho aggiornato il mio post. Hai qualche idea di dove si trova il problema? – Michal

risposta

4

cosa che messaggio di log significa che/FavoriteSites non esiste liste nel sito di root della raccolta siti o nel sito in cui viene attivata la funzionalità (se quest'ultimo è un sito secondario).

Se Lists/FavoriteSites viene creato da una funzione, assicurarsi che sia attivata prima della funzione Campi. Metti l'elemento ListInstance direttamente sopra il tuo elemento Field se necessario. Ma il messaggio è chiaro: l'elenco non esiste nel momento in cui il tuo campo personalizzato viene fornito alla raccolta siti. Ed è per questo che non funziona.

Per essere chiari, l'elenco deve esistere nel momento in cui la funzione viene attivata, non solo quando si crea un'istanza di elenco che utilizzerà tale campo.

P.S. Ho trovato questo verificando il "documentation" per il metodo Microsoft.SharePoint.SPFieldElement.PerformFixUpIfLookUpField.

+0

Grazie Rich, è stato causato dall'ordine di attivazione della funzione. Quando inserisco l'attivazione della funzionalità con le liste prima della funzione con i campi, tutto funziona correttamente. – Michal

1

Provare a modificare il campo elenco per l'ID dell'elenco, ad es. List="{4641f5f2-b358-4805-9d7d-e910d2243fb5}"

Vorrei inoltre consiglia di utilizzare SharePointManager a guardare la definizione di campo del campo creato manualmente e di trovare facilmente i GUID in fiore di liste, ecc

+0

Grazie per la tua risposta Nat, SharePointManager è un'applicazione davvero molto utile, non lo sapevo prima. Non riesco a specificare questo elenco per ID perché non conosco l'ID nel tempo di implementazione. Posso aggiungere questa colonna per il ricevitore dell'evento Feature ma non è il modo che voglio usare. Penso che il modo con la definizione di xml e l'URL dell'elenco dovrebbe essere OK in Sharepoint 2010. – Michal

1

Ho avuto lo stesso problema. Alla fine il mio problema era che non si può fare riferimento in modo dichiarativo ad una lista che si trova nel rootweb. Il token ~ sitecollection nella proprietà WebId non funziona perché scriverà il Guid tra parentesi graffe, mentre SharePoint lo prevede senza parentesi graffe (la spiegazione può essere trovata su http://martensboarterstun.wordpress.com/2013/06/15/how-to-create-a-list-definition-with-a-lookup-field-declaratively/). Ho finito per inserire l'ID Rootweb nella mia definizione di lista.