Как программно изменить имя страницы и URL в SharePoint 2010 с помощью EventReceiver - PullRequest
2 голосов
/ 07 декабря 2011

То, чего я хочу достичь, просто. Когда пользователь создает новую страницу в SharePoint 2010, я хочу удалить специальный символ и обрезать имя / URL страницы до определенного количества символов.

Например: пользователь вводит «Я хочу создать эту страницу с очень длинным именем! @ # $% ^^ & ** _ +» в диалоговом окне создания новой страницы, фактическая страница, которую нужно создать, - это extralongname. ASPX "

Я получил специальный символ удаления и усеченную часть. Я просто не могу изменить имя страницы / URL.

Есть идеи?

С уважением,

Ken

Ответы [ 2 ]

0 голосов
/ 18 июля 2017

Это действительно легко. Вам просто нужно изменить значение поля 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();
}
0 голосов
/ 02 февраля 2012

Я нашел ваш вопрос, выполнив поиск аналогичной проблемы.

Полагаю, вы решили проблему в это время.Может быть, это может помочь другим людям, имеющим ту же проблему.

Вы делаете это с объектом SPSecurity?

например.

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();
   }

});

Это потому, что у пользователя может не бытьпривилегии, делающие это.

Но это должно сработать!

...