Domanda

Sto costruendo una parte web che verrebbe aggiunta alla parte inferiore di ogni vista libreria e visualizzerebbe i tipi di contenuto della cartella che semplifica la creazione di una nuova cartella (anziché dover andare su documenti - nuovo documento e quindi selezionareun ascensore).

Il mio primo tentativo usato

    foreach(SPContentType type in list.ContentTypes)
.

funziona ma mi dà i tipi di contenuto in una sorta di ordine predefinito che non ha nulla a che fare con l'ordine che ho impostato nel nuovo pulsante Documento.

Il mio prossimo tentativo ho usato

    SPFolder folder = web.GetFolder(Request.RawUrl);
    foreach(SPContentType type in folder.ContentTypeOrder)
.

Questo funziona anche ma mi dà lo stesso ordine esatto del primo tentativo anche se ho un nuovo pulsante di pulsanti unico impostato per ogni tipo di cartella nella libreria.

Allora, come posso ottenere l'ordine in cui gli articoli appaiono sul nuovo pulsante?

È stato utile?

Soluzione 2

L'ho capito che stavo ricevendo l'oggetto della cartella in modo errato.Potrebbe esserci un modo più elegante per farlo, ma i seguenti lavori:

            SPFolder folder;
            string rawUrl = Request.RawUrl;
            string rootFolder;
            if (rawUrl.Contains("RootFolder"))
            {
                int start = rawUrl.IndexOf("RootFolder");
                int end = rawUrl.IndexOf("&", start);
                int length = end - start;
                rootFolder = rawUrl.Substring(start, length);
                string url = rootFolder.Replace("RootFolder=", "");
                folder = web.GetFolder(url);
            }
            else
            {
                folder = list.RootFolder;
            }


            foreach (SPContentType type in folder.ContentTypeOrder)
.

Altri suggerimenti

Per recuperare l'elenco dei tipi di contenuto ordinati allo stesso modo degli elementi visualizzati sul nuovo pulsante:

            SPFolder folder = list.RootFolder; 
            if (folder.ParentListId != Guid.Empty)
            {
                var contentTypeOrder = folder.ContentTypeOrder;
                foreach (var contentType in contentTypeOrder)
                {
                    //...
                }
            }  
.


.

SPFOLFERER.Contenttypeorder proprietà.

Secondo MSDN:

.

Questa proprietà restituisce un elenco di SPContentType oggetti.La sequenza di oggetti nell'elenco determina l'ordine in cui i tipi di contenuto sono elencati nell'interfaccia utente, come ad esempio sul nuovo menu di un elenco di SharePoint o sulla pagina delle impostazioni di elenco.

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