2011-12-30 144 views
12

假設我在URL http://webapp:1234/Lists/TestList上提供了SharePoint列表。以編程方式檢索SPList URL

在代碼中,我只能訪問相應的SPList實例。如何以編程方式獲取此SPList -Instance的URL?

的SPList類是缺少一個URL屬性或類似的東西...

+1

根據你想用URL做什麼,你可能真的要在列表的默認視圖中的網址:'mylist.DefaultView.Url'。 – 2012-01-03 06:42:16

回答

20

您需要在列表的根文件夾的網址與該網頁的網址相結合。根文件夾URL可通過SPFolder.Url和網址的絕對URL通過SPWeb.Url訪問。假如你有一個list它將會像list.ParentWeb.Url + list.RootFolder.Url一樣。

但是,請閱讀文檔,嘗試它並修復正確的斜線等內容。您可能還需要從父項SPWebApplication對象中找出URL的主機名部分。請注意,由於備用訪問映射,該站點可能通過多個主機名訪問。

此外,SPUtility.GetFullUrl可能會派上用場,將服務器相關的URL轉換爲完整的URL。

+0

謝謝!忽略RootFolder屬性... – 2011-12-30 16:56:30

+5

稍微短一點的版本就是簡單地使用'list.RootFolder.ServerRelativeUrl'屬性值。 – 2013-08-08 19:55:36

1

你可以試試這個

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

...至少對文檔庫不起作用。 – 2013-08-08 21:28:35

+0

對於庫刪除「列表/」 – 2014-07-21 03:52:47

+0

哈哈好,這取決於..圖書館也在列表.. – 2014-09-17 08:50:24

0

這符合我:

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

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

string listlink = sitecol + "/" + list;