2011-12-30 14 views
12

Digamos que tengo una lista de SharePoint proporcionada en la URL http://webapp:1234/Lists/TestList.Recuperar SPList URL programáticamente

En el código, tengo acceso a la SPList-Instance correspondiente solamente. ¿Cómo puedo obtener la URL de este SPList -Instance programmatically?

clase SPList La falta de una propiedad URL o algo por el estilo ...

+1

Dependiendo de lo que quiere hacer con la URL, es posible que realmente quiere la url de la vista predeterminada de la lista : 'mylist.DefaultView.Url'. –

Respuesta

20

Es necesario combinar URL carpeta raíz de la lista con la dirección web. Se puede acceder a la URL de la carpeta raíz a través del SPFolder.Url y la URL absoluta de la web a través del SPWeb.Url. Siempre que tenga un list será algo así como list.ParentWeb.Url + list.RootFolder.Url.

Sin embargo, lea la documentación, pruébelo y solucione cosas como barras diagonales, etc. También podría necesitar averiguar la parte del nombre de host de la URL del objeto principal SPWebApplication. Tenga en cuenta que el sitio puede ser accesible a través de múltiples nombres de host debido a las asignaciones de acceso alternativas. También puede ser útil SPUtility.GetFullUrl para convertir una URL relativa al servidor en una URL completa.

+0

Gracias! Pasó por alto la propiedad RootFolder ... –

+5

Una versión ligeramente más corta sería simplemente usar el valor de propiedad 'list.RootFolder.ServerRelativeUrl'. –

1

puede probar esta

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

... que no funcionará para bibliotecas de documentos, al menos. –

+0

Para bibliotecas Quitar "Listas /" –

+0

jaja bueno, eso depende ... Las bibliotecas también están en Listas .. –

0

esto se ajusta para mí:

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

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

string listlink = sitecol + "/" + list; 
Cuestiones relacionadas