اضافه نمودن اسکریپت ها به Header صفحات در یوزر کنترل ها :
  در این مقاله با استفاده از متد های توسعه گر (Extension Methods) به انجام این عمل خواهیم پرداخت.
   ASP.NET
   ۱۵۶۹۲
   این مقاله حاوی فایل ضمیمه نمی باشد
   مرتضی صحراگرد
   ۱۳۸۷/۶/۲۲
ارسال لینک صفحه برای دوستان ارسال لینک صفحه برای دوستان  اضافه کردن به علاقه مندیها اضافه کردن به علاقه مندیها   نسخه قابل چاپ نسخه قابل چاپ

 

همانطور که می دانید،  در برنامه نویسی برنامه های تحت وب، گاهی نیاز است که اسکریپ یا فایل CSS و یا غیره را به قسمت Header صفحه اضافه کنیم.

 یکی از روش های معمول برای انجام این کار، ایجاد یک کنترل Literal و نسبت دادن اسکریپت مورد نظر به آن می باشد. سپس این کنترل را به شکل زیر باید به Header صفحه اضافه نمود.


Literal ltr = new Literal();
ltr.Text =
"@<script src='SomeSource.js' type='text/javascript'></script>";
Page.Header.Controls.Add(ltr);

در این مقاله با استفاده از یکی از ویژگی های جدید DotNet Framework 3.5 یعنی متدهای توسعه گر Extension Methods این کار را انجام خواهیم داد.

در صورتی که با متدهای توسعه گر آشنا نیستید، پیشنهاد می شود که پیش از ادامه مقاله، معرفی متدهای توسعه گر را از  اینجا مطالعه نمایید.

متد مربوطه را در قسمت زیر مشاهده می نمایید.


public static void Insert(this HtmlHead h, string script, bool addScriptTags)
{
Literal ltr = new Literal();
if (addScriptTags)
{
ltr.Text =
@"<script type=""text/javascript"">
//<![CDATA["
+ script +
@"//]]>
</script>"
;
}
else
{
ltr.Text = script;
}
h.Controls.Add(ltr);
}

همانطور که ملاحظه می نمایید این متد، کلاس HtmlHead را توسعه داده است. و اکنون با استفاده از فراخوانی متد Insert می توانیم در تمام یوزر کنترل ها و صفحات، اسکریپت مورد نظر خود را به Header صفحه اضافه نماییم.

اکنون چندین مثال از کاربرد و نحوه استفاده از این متد ملاحظه می نمایید.

اضافه نمودن یک فایل جاوا اسکریپت به Header صفحه :


Page.Header.Insert(@"<script src='SomeSource.js' type='text/javascript'></script>", false);

اضافه نمودن یک تابع جاوا اسکریپت به به Header صفحه :


Page.Header.Insert(@"
function someFunction() {
alert('Hi I AM 30sharp.com');
}"
, true);

اضافه نمودن یک فایل CSS به Header صفحه :


Page.Header.Insert(
@"<link type='text/css' rel='stylesheet' href='someClass.css'></link>"
, false);

مقالات مرتبط :

منابع : 30sharp.com

        johnkatsiotis