Как программно изменить имя страницы и URL в SharePoint 2010 с помощью EventReceiver
Чего я хочу добиться - это просто. Когда пользователь создает новую страницу в SharePoint 2010, я хочу удалить специальный символ и обрезать имя /URL-адрес страницы до определенного количества символов.
Например: введите "Я хочу создать эту страницу с очень длинным именем!@#$%^^&**_+" в диалоговом окне создания новой страницы, фактическая страница, которая будет создана, - "extralongname.aspx"
Я получил специальный символ удаления и усеченную часть. Я просто не могу изменить имя страницы /URL.
Любая идея?
С Уважением,
кругозор
2 ответа
Я нашел ваш вопрос, ища симлиарную проблему.
Я полагаю, вы уже решили проблему. Может быть, это может помочь другим людям, имеющим ту же проблему.
Вы делаете это с SPSecurity Object?
например.
SPSecurity.RunWithElevatedPrivileges(delegate(){
SPSite site = new SPSite(siteUrl); //You need the url here
using(SPWeb web = site.OpenWeb();
{
web.Title = "The new Title";
web.Update();
}
});
Это потому, что пользователь может не иметь привилегий на это.
Но это должно сработать!
Это действительно легко. Вам просто нужно изменить значение поля FileLeafRef
,
using (SPSite site = new SPSite("https://sharepoint-site.domain.com"))
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Your list"];
SPListItem item = list.GetItemById(1);
// next row is important
item[SPBuiltInFieldId.FileLeafRef] = "Your page url and title.aspx";
item.Update();
}