Как программно изменить имя страницы и 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();
}
Другие вопросы по тегам