2010-12-01 32 views
1

我是新的SharePoint,我必須在所有的Web部分做一個非常簡單的修改。我們有很多包含非常簡單的html的web部分。該html只包含一個鏈接和一個圖像。如何在SharePoint 2007中列出並編輯所有Web部件的HTML?

Web開發人員已經把完整的頁面的鏈接和圖像,它會導致一些問題。我想掃描所有的網頁部分html,並用相關鏈接替換完整的鏈接。

可能嗎?我們有大量的頁面和鏈接。手動完成需要2周!

謝謝!

編輯#2: 現在的問題是:是否有可能列出我的網站所有的aspx文件? 我知道如何訪問Web部件的內容與網址:

using (SPLimitedWebPartManager manager = web.GetLimitedWebPartManager(
       "ca/Pages/Home.aspx", PersonalizationScope.Shared)) 
     { 
      foreach (System.Web.UI.WebControls.WebParts.WebPart wp in manager.WebParts) 
      { 
       System.Console.WriteLine(wp.Title); 
       if (wp.GetType().Equals(typeof(Microsoft.SharePoint.WebPartPages.ContentEditorWebPart))) 
       { 
        Microsoft.SharePoint.WebPartPages.ContentEditorWebPart thisWebPart = wp as Microsoft.SharePoint.WebPartPages.ContentEditorWebPart; 

        System.Console.WriteLine(thisWebPart.Content.InnerText); 
        System.Console.WriteLine(thisWebPart.Content.InnerXml); 
       } 

      } 
     } 

編輯#1: 根據要求他們有一個例子:

我想刪除的「http://www.mywebsite。 com「從這樣的代碼:

<A title="" href="http://www.mywebsite.com/Pages/Career.aspx" target=""><IMG style="BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; BORDER-LEFT: 0px solid; BORDER-BOTTOM: 0px solid" src="http://www.mywebsite.com/images/Career.jpg" border=0></A> 
+0

你可以發佈你想要做替換的例子。修改前後的鏈接。 – 2010-12-01 15:40:18

+0

有您使用的自定義web部件或內容編輯的WebPart否則 – Rico 2010-12-01 16:21:14

回答

0

我不知道如果我得到什麼是必需的。那麼寫一個這樣的程序呢?通過正則表達式檢測鏈接並替換它們。

0

如果你想真正改變在SharePoint中的內容,可能難以在代碼中做到這一點。每個Web部件的工作方式都不相同,因此對於所有Web部件都沒有標準解決方案。例如,CQWP可以從各種列表中提取數據,因此對該webpart進行更改的方法是更改​​它所從列表中的數據。其他webparts可能會從SQL Server,Reports中獲取數據,並在其中包含IFrame等。某些webpart甚至可能在自定義DLL中硬編碼的URL,只能通過修改該DLL所包含的解決方案/功能重新部署更新的版本。

然而,替代的解決方案是寫一個響應濾波器,這將需要的SharePoint的輸出和動態地做一個查找/替換一個頁面被從SharePoint要求每一次。有關如何做到這一點的更多信息,請參閱http://aspnetresources.com/articles/HttpFilters

1

在內容編輯器Web部件上的內容存儲在內容標籤

<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor"><![CDATA[<p>test document test document</p>]]></Content> 

什麼,我可以在這裏建議在SharePoint desginer打開的網站,並使用查找和替換選項的所有頁面

0

其中的兩個部分,第一部分是循環瀏覽站點中的所有Web部件頁面 - 這裏有很多示例,所以不要在此重複說明。

第二部分是更新內容屬性和保存 - 看起來這是你的難題爲updating the Content Editor Web Part (CEWP) programatically因此丟失的部分: -

using System.Xml; 
using System.Web.UI.WebControls.WebParts; 
using Microsoft.SharePoint; 
using Microsoft.SharePoint.WebPartPages; 

private void updateContentEditor(SPWeb web, string pageUrl) 
{ 
    using (SPLimitedWebPartManager manager = 
      web.GetLimitedWebPartManager(pageUrl, PersonalizationScope.Shared)) 
    { 
     foreach (WebPart wp in manager.WebParts) 
     { 
      if (wp.GetType() == typeof(ContentEditorWebPart)) 
      { 
       ContentEditorWebPart cewp = wp as ContentEditorWebPart; 
       cewp.Content.InnerXml; 

       // See http://justgeeks.blogspot.com/2009/02/i-found-to-be-bit-tricky-to-update.html 
       XmlDocument xmlDoc = new XmlDocument(); 
       XmlElement xmlElement = xmlDoc.CreateElement("MyElement"); 

       // Do you change logic here 
       xmlElement.InnerText = 
        contentEditor.Content.InnerText.Replace(BEFORE, AFTER); 

       // Save changes 
       contentEditor.Content = xmlElement; 
       manager.SaveChanges(cewp); 
      } 
     } 
    } 
} 
相關問題