如何使用EventReceiver以编程方式更改SharePoint 2010中的页面名称和URL

时间:2011-12-07 04:19:13

标签: c# sharepoint-2010 eventreceiver

我想要实现的目标很简单。当用户在SharePoint 2010中创建新页面时,我想删除特殊字符并将页面名称/ URL截断为特定数量的字符。

例如:用户在“创建新页面”对话框中键入“我想创建具有超长名称的页面!@#$%^^& ** _ +”,创建的实际页面为“extralongname”的.aspx“

我有删除特殊字符并截断部分。我只是无法更改页面名称/网址。

有什么想法吗?

此致

2 个答案:

答案 0 :(得分:0)

我通过搜索simliar问题找到了您的问题。

我猜你在此期间解决了这个问题。也许它可以帮助其他人遇到同样的问题。

您是否使用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();
   }

});

这是因为用户可能没有这样做的权限。

但这应该可以解决问题!

答案 1 :(得分:0)

真的很容易。您只需更改字段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();
}