【问题标题】:CatalogIconImageUrl - custom icon not working properly with personal SP sitesCatalogIconImageUrl - 自定义图标无法在个人 SP 网站上正常工作
【发布时间】:2011-11-09 19:59:12
【问题描述】:
【问题讨论】:
标签:
sharepoint
custom-controls
web-parts
【解决方案1】:
chris_walker 为我提供了帮助。
我已向该功能添加了一个事件接收器。之后,我在 Feature Activated 方法中检索了 Web 应用程序根目录。最后,我将 webpart 架构作为 txt 文件打开,并将一个关键字 (~sitecollection) 替换为真实的网站集 URL。
public class WebPartEventReceiver : SPFeatureReceiver
{
public override void FeatureActivated(SPFeatureReceiverProperties properties) {
SPSite site = properties.Feature.Parent as SPSite;
if (site != null) {
SPList webPartsGallery = site.GetCatalog(SPListTemplateType.WebPartCatalog);
SPListItemCollection allWebParts = webPartsGallery.Items;
SPListItem webPart = (from SPListItem wp in allWebParts where wp.File.Name == "your.webpart" select wp).SingleOrDefault();
if (webPart != null) {
string siteCollectionUrl = site.ServerRelativeUrl;
if (!siteCollectionUrl.EndsWith("/")) { siteCollectionUrl += "/"; }
string fileContents = Encoding.UTF8.GetString(webPart.File.OpenBinary());
fileContents = fileContents.Replace("~sitecollection/", siteCollectionUrl);
webPart.File.SaveBinary(Encoding.UTF8.GetBytes(fileContents));
}
}
}