2012-05-28 4 views
0

Мы создаем дискуссионную панель в Sharepoint 2010 без особых усилий, но я ищу решение, где панель обсуждения и все ее ответы будут добавлены в определенную зону автоматически. Тому конечному пользователю не нужно добавлять дискуссию, через процесс ввода страницы в режим редактирования, а затем добавление веб-части. Но вместо этого, когда пользователь создает дискуссионную панель, все обсуждения и сообщение автоматически добавляются на страницу (в определенную зону на странице).Как добавить дискуссию в страницу автоматически в Sharepoint 2010?

Спасибо.

ответ

0

Добавьте этот код в обработчик веб-событий (ListAdded), чтобы запустить этот код автоматически. В этом коде вам нужно будет проверить, является ли тип списка дискуссией. В приемнике событий вам понадобится ссылка на SPWeb, в которую вы хотите добавить веб-часть, и в список, который хотите использовать (в этом примере список контактов). Затем вы создаете экземпляр класса ListViewWebPart, в котором вы можете установить ZoneID, ListName и ViewGuid. Это сложная часть, свойство ListName должно содержать идентификатор вашего списка (GUID), а не имя вашего списка! Но свойство ListName имеет строку типа, поэтому вам нужно преобразовать GUID List в строку с использованием .ToString («B»). ToUpper(). То же самое касается ViewGuid. Наконец, вам нужно получить ссылку на WebPartCollection для страницы, в которую вы хотите добавить веб-часть (в этом примере домашняя страница будет default.aspx). Теперь вы можете добавить веб-часть с помощью метода Add.

using Microsoft.SharePoint; 
using Microsoft.SharePoint.WebPartPages; 

// Get a reference to a web and a list 
SPSite site = new SPSite("http://localhost:8000"); 
SPWeb web = site.OpenWeb(); 
SPList list = web.Lists["Contacts"]; 

// 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(); 

// Get the web part collection 
SPWebPartCollection coll = 
    web.GetWebPartCollection("default.aspx", 
    Storage.Shared); 

// Add the web part 
coll.Add(wp); 
Смежные вопросы