2011-12-30 1 views
12

Disons que j'ai une liste SharePoint fournie sur l'URL http://webapp:1234/Lists/TestList.Récupérer l'URL SPList par programme

En code, j'ai accès à l'occurrence SPList correspondante uniquement. Comment puis-je obtenir l'URL de ce SPList -Instance par programme?

La classe SPList manque une propriété d'URL ou quelque chose comme ça ...

+1

Selon ce que vous voulez faire avec l'URL, vous pourriez vraiment vouloir l'url de la vue par défaut de la liste : 'mylist.DefaultView.Url'. –

Répondre

20

Vous devez combiner l'URL du dossier racine de la liste avec l'URL Web. L'URL du dossier racine est accessible via SPFolder.Url et l'URL absolue du site Web via SPWeb.Url. À condition que vous ayez un list ce sera quelque chose comme list.ParentWeb.Url + list.RootFolder.Url. Cependant, lisez la documentation, essayez-la et corrigez des choses comme des barres obliques, etc. Vous devrez peut-être également déterminer la partie du nom d'hôte de l'URL à partir de l'objet parent SPWebApplication. Notez que le site peut être accessible via plusieurs noms d'hôte en raison des mappages d'accès alternatifs.

En outre, SPUtility.GetFullUrl peut être pratique pour convertir une URL relative au serveur en URL complète.

+0

Merci! La propriété RootFolder a été ignorée ... –

+5

Une version légèrement plus courte utiliserait simplement la valeur de la propriété 'list.RootFolder.ServerRelativeUrl'. –

1

vous pouvez essayer cette

SPList newlist = web.Lists(Web.Url + "Lists/listname"); 
+1

... ce qui ne fonctionnera pas pour les bibliothèques de documents, au moins. –

+0

Pour les bibliothèques Supprimer "Listes /" –

+0

haha ​​bien, cela dépend .. Les bibliothèques sont également sous les listes .. –

0

cela correspond pour moi:

string sitecol= SPContext.Current.Site.Url.ToString(); 

string list= myList.DefaultView.Url.ToString(); 

string listlink = sitecol + "/" + list; 
Questions connexes