четверг, января 20, 2011

Сюрприз от DocumentSet - 2

Второй сюрприз от неплохого типа – неверный перенос средствами экспорта/импорта настроек представления для содержимого набора документов. После импорта используется представление по умолчанию для библиотеки, а вовсе не то представление, которое было настроено до экспорта.

Исправляются последствия сюрприза использованием вот такого метода:

   1: /// <summary>
2: /// Востановление представления стартовой страницы набора документов
3: /// </summary>
4: /// <param name="list">список/библиотека</param>
5: /// <param name="contentTypeName">Название типа содержимого</param>
6: /// <param name="viewName">имя представления</param>
7: private void ResetDocSetView(SPList list, string contentTypeName, string viewName) {
8: SPContentType contentType = null;
9: try { contentType = list.ContentTypes[contentTypeName]; } catch { }
10: if (contentType != null) {
11: DocumentSetTemplate docSetTemplate = DocumentSetTemplate.GetDocumentSetTemplate(contentType);
  12:         if ((docSetTemplate.WelcomePageView == null)  (docSetTemplate.WelcomePageView.Title != viewName)) {
  13:             SPView view = list.Views.TryGetView(viewName);    
  14:             if (view != null) {
  15:              docSetTemplate.WelcomePageView = view;  
  16:                 docSetTemplate.Update(true);    
  17:             } else {    
  18:                 msgError +=     
  19:                     string.Format("В списке [{1}] отсутствует представление [{0}]", viewName, list.Title);    
  20:             }    
  21:         }    
  22:     } else {    
  23:         msgError +=    
  24:             string.Format("В списке [{1}] отсутствует тип [{0}]", contentTypeName, list.Title);    
  25:     }    
  26: }
Technorati Tags: ,