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

Веб-частини (WebParts)
- private SPWebPartManager SPWebPartManager
- get
- return (WebPartManager.GetCurrentWebPartManager( this ) as SPWebPartManager);
- >
- >
Тепер на подію OnLoad ми задамо тип хрому для всіх веб-частин на сторінці:
- protected override void OnLoad( EventArgs e)
- base .OnLoad(e);
- // Якщо користувач не анонімний, виходимо
- if (! IsAnonymous) return ;
- // Перебираємо всі веб-частини та задаємо їм тип хрому
- foreach ( var webPart in SPWebPartManager.WebParts.Cast ())
- webPart.ChromeType = PartChromeType.None;
- >
- >
Тепер кожна веб-частина "обрамлена" незначним HTML-кодом:
- table class = "s4-wpTopTable" border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
- tbody >
- tr >
- td valign = "top" >
- div webpartid ="[WebPartGuid]" haspers ="false" id ="WebPartWPQ3"
- width ="100%" class ="ms-WPBody noindex" allowdelete ="false" style ="" >
- div >
- td >
- tr >
- tbody >
- table >
Якщо розвивати цей напрямок далі, то можна перевизначити рендеринг веб-частин і зон веб-частин, щоб, наприклад, уникнути таблиць.
Наступний крок стосуватиметься клієнтського коду, а саме його мінімізації. Тут я опишу два способи.
ScriptLink.IsMinimalMode
Перший спосіб стосується властивості IsMinimalMode об'єкта ScriptLink:
- internal static bool IsMinimalMode
- get
- return (( HttpContext .Current.Items[ "sp-MinimalScriptKey" ]
- as string ) == "MinimalScriptMode" );
- >
- set
- string str = value? "MinimalScriptMode": string .Empty;
- HttpContext .Current.Items[ "sp-MinimalScriptKey" ] = str;
- >
- >
Таким чином, щоб задіяти цей режим, нам достатньо в метод FluentWebPartPage.SetAnonymousView наступний рядок коду:
- HttpContext .Current.Items[ "sp-MinimalScriptKey" ] = "MinimalScriptMode" ;
У цьому випадку ми залишаємо за SharePoint право вирішувати які срипти завантажувати, а які ні. Ми просто декларуємо своє бажання мінімізувати код клієнта.