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>
Grazie per le info. Funziona come un fascino. Ho fatto un trucco simile su una sorta di multi-campo (3 campi). L'unico problema con la modifica del CAML è che se viene modificata la visualizzazione, le modifiche vengono sovrascritti. Ma che è vita!
Grazie per la pubblicazione!
Avevo messo il tag dopo . Ma ancora non è applicare l'ordinamento sul mio calendario. Anche se fornisce il nome di formica in valore FieldRef quindi anche non genera alcun errore. Per esempio. test123 colonna non esiste nel mio calendario ma se cerco di utilizzare questo campo allora anche il pagina doesnot buttare qualsiasi errore. Non so se funziona il tag. Sto usando SharePoint 2010.