Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用EventReceiver以编程方式更改SharePoint 2010中的页面名称和url_C#_Sharepoint 2010_Eventreceiver - Fatal编程技术网

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

C# 如何使用EventReceiver以编程方式更改SharePoint 2010中的页面名称和url,c#,sharepoint-2010,eventreceiver,C#,Sharepoint 2010,Eventreceiver,我想要实现的很简单。当用户在SharePoint 2010中创建新页面时,我希望删除特殊字符,并将页面名称/URL截断为一定数量的字符 例如:用户在“创建新页面”对话框中键入“我想用超长名称创建此页面!@#$%^&**+”,实际创建的页面为“超长名称.aspx” 我得到了删除特殊字符和截断部分。我只是无法更改页面名称/Url 有什么想法吗 问候, 肯我通过搜索一个类似的问题找到了你的问题 我想你同时解决了这个问题。也许它可以帮助其他有同样问题的人 您正在使用SPSecurity对象执行此操作吗

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

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

我得到了删除特殊字符和截断部分。我只是无法更改页面名称/Url

有什么想法吗

问候,


我通过搜索一个类似的问题找到了你的问题

我想你同时解决了这个问题。也许它可以帮助其他有同样问题的人

您正在使用SPSecurity对象执行此操作吗

例如

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


但这应该能奏效

我通过搜索一个类似的问题找到了你的问题

我想你同时解决了这个问题。也许它可以帮助其他有同样问题的人

您正在使用SPSecurity对象执行此操作吗

例如

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


但这应该能奏效

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

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

嗯,已经一个多星期没有人回复了。这是否意味着全世界没有人知道答案(即使是微软)或者这个问题太难解决?嗯,已经一个多星期了,没有人回复。这是否意味着全世界没有人知道答案(即使是微软),或者这个问题太难解决?