استفاده از کنترل CssRegistration در شیرپوینت 2010

کنترلی در شیرپوینت که کمک می‌کنه فایل‌های استایل رو به راحتی به خروجی اضافه کنیم. مزیتش هم اینه که می‌شه ترتیب و شرط برای لودش مشخص کرد

چه در یک masterpage، چه در یک وب پارت، اگر بخواهیم فایل css ای را load کنیم، روش‌های مختلفی وجود دارد. یکی از روش‌های استاندارد در شیرپوینت برای تعریف فایل‌های css استفاده از کنترل CssRegistration است. قصد دارم در این مطلب به صورت کوتاه این کنترل را معرفی کنم.

اگر بخواهیم به صورت markup از این کنترل استفاده کنیم به شکل زیر خواهد بود:

در صورتی که در کد بخواهیم از آن استفاده کنیم از کدی مانند کد زیر می‌توان استفاده کرد:

در کد بالا در خط مشخص شده، آدرس فایل css مورد نظر را وارد خواهیم کرد.

این کنترل چند مزیت نسبت به یک تگ link ساده دارد:

امکان تعیین ترتیب load

به کمک خاصیت After که در کد بالا هم مشخص شده است، می‌توانیم مشخص کنیم که فایل css ما بعد از چه فایلی load شود. این مساله به خصوص در پیاده‌سازی تم جدید برای شیرپوینت حائز اهمیت است تا بتوانیم css‌های پیش‌فرض شیرپوینت را به درستی override کنیم.
به عنوان مثال در کد سی شارپی بالا، فایل css ما بعد از corev4.css لود خواهد شد.

امکان تعیین شرط برای load

به کمک خاصیت ConditionalExpression در این کنترل می‌توان css های شرطی ایجاد نمود. به عنوان مثال اگر ConditionalExpression را برابر IE 7.0 قرار دهیم خروجی مشابه زیر حاصل خواهد شد.

امکان اینکه مرورگری غیر IE هم در این شرط‌ها لحاظ شود وجود دارد، اما باید RevealToNonIE را true مقداردهی کنید.

امکان ایجاد پوسته برای استایل‌ها

یکی از مواردی که در مبحث branding سایت‌های شیرپوینتی مطرح است، پوسته‌ها (شامل رنگ‌بندی و استایل فونت‌ها) می‌باشد. CssRegistration به شما امکان ایجاد پوسته‌ها را از طریق ست کردن EnableCssTheming می‌دهد.

امکان تعیین آدرس نسبی برای فایل‌ها در کد

چه در زمانی که به صورت markup از این کنترل مثلاً در masterpage یا page layout استفاده می‌کنیم چه زمانی که آن را در یک کد سی‌شارپی به کار می‌بریم این امکان وجود دارد که آدرس فایل css را به صورت نسبی بدهیم. مثلاً در کد اول این نوشته که به صورت markup هست عبارت sitecollection~ مشخص کننده آدرس مجموعه سایت است.
مزیت این کار در این است که انتقال کد حاوی کنترل CssRegistration‌ از محیط توسعه به محیط مشتری، نیازمند تغییر و تنظیم مجدد نیست.