我已在内容类型中以编程方式创建了一个库,我的网址为:
/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上完成它的完美解决方案。
答案 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)
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)