Робимо сайт на SharePoint 2010

sharepoint

Веб-частини (WebParts)

  1. private SPWebPartManager SPWebPartManager
  2. get
  3. return (WebPartManager.GetCurrentWebPartManager( this ) as SPWebPartManager);
  4. >
  5. >

Тепер на подію OnLoad ми задамо тип хрому для всіх веб-частин на сторінці:

  1. protected override void OnLoad( EventArgs e)
  2. base .OnLoad(e);
  3. // Якщо користувач не анонімний, виходимо
  4. if (! IsAnonymous) return ;
  5. // Перебираємо всі веб-частини та задаємо їм тип хрому
  6. foreach ( var webPart in SPWebPartManager.WebParts.Cast ())
  7. webPart.ChromeType = PartChromeType.None;
  8. >
  9. >

Тепер кожна веб-частина "обрамлена" незначним HTML-кодом:

  1. table class = "s4-wpTopTable" border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
  2. tbody >
  3. tr >
  4. td valign = "top" >
  5. div webpartid ="[WebPartGuid]" haspers ="false" id ="WebPartWPQ3"
  6. width ="100%" class ="ms-WPBody noindex" allowdelete ="false" style ="" >
  7. div >
  8. td >
  9. tr >
  10. tbody >
  11. table >

Якщо розвивати цей напрямок далі, то можна перевизначити рендеринг веб-частин і зон веб-частин, щоб, наприклад, уникнути таблиць.

Наступний крок стосуватиметься клієнтського коду, а саме його мінімізації. Тут я опишу два способи.

ScriptLink.IsMinimalMode

Перший спосіб стосується властивості IsMinimalMode об'єкта ScriptLink:

  1. internal static bool IsMinimalMode
  2. get
  3. return (( HttpContext .Current.Items[ "sp-MinimalScriptKey" ]
  4. as string ) == "MinimalScriptMode" );
  5. >
  6. set
  7. string str = value? "MinimalScriptMode": string .Empty;
  8. HttpContext .Current.Items[ "sp-MinimalScriptKey" ] = str;
  9. >
  10. >

Таким чином, щоб задіяти цей режим, нам достатньо в метод FluentWebPartPage.SetAnonymousView наступний рядок коду:

  1. HttpContext .Current.Items[ "sp-MinimalScriptKey" ] = "MinimalScriptMode" ;

У цьому випадку ми залишаємо за SharePoint право вирішувати які срипти завантажувати, а які ні. Ми просто декларуємо своє бажання мінімізувати код клієнта.