Sto usando un calendario per tenere traccia di tavole rotonde in un dato giorno. Ho due sessioni: mattina e pomeriggio. Voglio creare una visualizzazione che mostra le sessioni del mattino solo elencati in ordine alfabetico tramite un ID di sessione. Questo è un po' difficile da realizzare (a meno che non mi mancava qualcosa di vero e proprio ovvio).
Posso facilmente creare una visualizzazione filtrata mostrando solo gli eventi di quel giorno. Il calendario mostrerà tutti quegli eventi e se tutti prendono posto sulla stessa ora, elenca loro fianco a fianco nello slot ora. Fantastico. La parte difficile è che, per impostazione predefinita, vuole li elenco in formato ID. Così, Se posso aggiungere "Session 02" e poi "Session 01" il calendario, li mostra in quell'ordine (vale a dire, Sessione 02 e poi la sessione 01). Per elencarli in ordine di ID di sessione, Ho pensato di provare queste cose:
- Configurare la visualizzazione utilizzando l'interfaccia utente web. Senza fortuna. Non esistono opzioni per ordinare gli elementi in questo modo.
Dal momento che non ha funzionato, Ora sto sperando che non ci è una query CAML da qualche parte in là che mi permetterà di eseguire l'override l'ordinamento. CQWP mi permette di fare che tipo di cambiare, forse il calendario sarà pure?
- Modificare la web part, cercare un'esportazione"" funzione e … BZZZT! Non riesco a esportare i suoi XML. Non esiste alcuna opzione di esportazione.
Io sono ancora una speranza che riesco a trovare e modificare alcune query CAML. Dal momento che non posso esportare la web part, SharePoint Designer, che lascia.
- Aggiungere la web part Calendario a un sito di sandbox e aprire quel sito tramite SharePoint Designer. Guardo il markup per la parte web e trovare quello che sto cercando. Esso ha codificato la follia, ma non c'è: "<ListViewXml …. >follia codificato</ListViewXml>". In particolare, c'è questo gioiello:
<Query>
<Dove>
<DateRangesOverlap>
<FieldRef Name = "Count" />
<FieldRef Name = "EndDate" />
<FieldRef Name = "RecurrenceID" />
<Tipo di valore = "DateTime">
<Mese />
</Valore>
</DateRangesOverlap>
</Dove>
<OrderBy><FieldRef Name = "Session_x0020_ID" /></OrderBy>
</Query>
(Io ho decodificato il <di e > s e dividerli a più righe per chiarezza).
Aggiungere il <OrderBy> il bit e ora ordina per Session ID, non l'ID elemento elenco interno.
GIGANTESCO punta o’ cappello di Becky Isserman per il suo commento al post del blog di Isha Sagi: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Non la metterei la <OrderBy> nel posto giusto senza il suo commento.
Spero di scrivere questo più chiaramente con screen shots presto, ma nel caso in cui non mai, almeno fatto questo molto.
</fine>