以编程方式更改 SharePoint 列表的 URL
本文关键字:列表 URL SharePoint 编程 方式更 | 更新日期: 2023-09-27 18:31:54
我在内容类型中以编程方式创建了一个库,我的URL是:
/sites/test/_layouts/15/start.aspx#/1235/Forms/AllItems.aspx
我想更新此 URL 并更改
12345
通过我的 C# 代码中的其他内容(我在其他地方获得的字符串值)。
像这样:
/sites/test/_layouts/15/start.aspx#/TEST/Forms/AllItems.aspx
我成功地轻松更改了库的标题,但没有更改URL。
SPList lst = web.Lists[oldVal];
lst.Title = properties.AfterProperties["CorporateName"].ToString();
lst.Update();
我在Sharepoint Designer中搜索并阅读了许多方法,但是我没有找到在Visual Studio上执行此操作的完美解决方案。
SPList 对象没有用于移动到新 URL 的受支持方法。 但是每个列表都有一个相应的文件夹,该文件夹确实有一个 MoveTo() 方法,该方法将更改关联列表的 URL。
SPWeb web = site.OpenWeb()
SPFolder folder = web.Folders["ListURL"];
folder.MoveTo("NewURL");
folder.Update();
这不一定受支持,但它确实有效,我相信它使用与SharePoint Designer解决方法相同的后端逻辑。
手动处理此问题的一个很少讨论但相关的方法是重命名列表文件夹,同时通过 WebDAV 从资源管理器查看 SharePoint 网站。
谢谢 Arcan.NET 我在你的帮助下解决了我的问题!
SPList lst = web.Lists[properties.ListItem["Name"].ToString()];
SPFolder folder = web.Folders[lst.RootFolder.Url];
folder.MoveTo(properties.AfterProperties["Nickname"].ToString());
https://sharepoint.stackexchange.com/questions/168269/change-url-of-a-sharepoint-list-programmatically
Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue
$libOriginalUrl = "/Lists/YourLibName1";
$libNewUrl = "/YourLibName2";
$web = Get-SPWeb -Identity http://....
$lib = $web.GetList($web.Url + $libOriginalUrl)
$rootFolder = $lib.RootFolder;
$rootFolder.MoveTo($web.Url + $libNewUrl)