2012-01-27 3 views
0

У меня есть сайт команды, и я пытаюсь изменить его страницу программно. Этот код добавляет веб-часть на страницу:Установить HTML-контент страницы SharePoint

using (SPSite site = new SPSite("http://myserver")) 
{ 
    using (var web = site.OpenWeb("/test16")) 
    { 

     foreach(var l in web.Lists) 
     { 
      Console.WriteLine("list : " + l); 
     } 

     SPList list = web.Lists["Shared Documents"]; 
     // Instantiate the web part 
     ListViewWebPart wp = new ListViewWebPart(); 
     wp.ZoneID = "Left"; 
     wp.ListName = list.ID.ToString("B").ToUpper(); 
     wp.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper(); 

     SPFile file = web.GetFile("/test16/SitePages/Home.aspx"); 
     SPLimitedWebPartManager lwpm = file.GetLimitedWebPartManager(PersonalizationScope.Shared); 
     SPLimitedWebPartCollection webParts = lwpm.WebParts; 
     lwpm.AddWebPart(wp, "Left", 0); 
    } 
} 

Console.WriteLine("Press any key to continue..."); 
Console.ReadLine(); 

Как изменить HTML-содержимое страницы?

ответ

0

Вы можете добавить LiteralControl к вашей веб-части и заполнить его с HTML, как это:

this.Controls.Add(new LiteralControl("<br /"));

+0

Хорошо, это может сработать, но я уверен, что должен быть способ редактировать файл Home.aspx напрямую. – tplehton

+0

Просто посмотрите [здесь] (http://blog.sharepointelearning.com/site-level-customizations-and-settings-using-sharepoint-designer-2010/) –

0

Попробуйте SPFile.CheckOut и SPFile.CheckIn:

SPFile file = web.GetFile("/test16/SitePages/Home.aspx"); 
file.CheckOut(); 
using (SPLimitedWebPartManager lwpm = file.GetLimitedWebPartManager(PersonalizationScope.Shared)) 
{ 
    try 
    { 
     SPLimitedWebPartCollection webParts = lwpm.WebParts; 
     lwpm.AddWebPart(wp, "Left", 0); 
    } 
    finally 
    { 
     lwpm.Web.Dispose(); 
    } 
}  
file.CheckIn("checkin");   
0

Если вам нужно изменить чистое содержание HTML , лучше использовать cutom IHttpHandler (завернутый в dll) и подключить его к SharePoint через web.config. Is также позволяет изменять динамический контент, такой как ответы AJAX.

Смежные вопросы