以编程方式更改SharePoint列表的URL

时间:2016-01-26 16:48:09

标签: c# sharepoint sharepoint-2013

我已在内容类型中以编程方式创建了一个库,我的网址为:

  

/sites/test/_layouts/15/start.aspx#/的 1235 /Forms/AllItems.aspx

我想更新此网址并更改

  

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上完成它的完美解决方案。

3 个答案:

答案 0 :(得分:2)

SPList对象没有支持的方法移动到新URL。但是每个列表都有一个对应的文件夹,它有一个MoveTo()方法,它将更改相关列表的Url。

Dim savedFilter As New List(Of String)
savedFilter.Add(NameTextBox.Text)
savedFilter.Add(AgeTextBox.Text)
savedFilter.Add(NotesTextBox.Text)
ComboBoxSavedFilters.Items.Add(savedFilter)

这不是必需的,但它确实有效,我相信它使用与SharePoint Designer解决方法相同的后端逻辑。

有一点讨论,但手动处理此问题的相关方法是在通过WebDAV从资源管理器查看SharePoint网站时重命名列表文件夹。

答案 1 :(得分:1)

感谢Arcan.NET我在你的帮助下解决了我的问题!

SPList lst = web.Lists[properties.ListItem["Name"].ToString()];
SPFolder folder = web.Folders[lst.RootFolder.Url];
folder.MoveTo(properties.AfterProperties["Nickname"].ToString());

答案 2 :(得分:0)

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)