راهکارهای موثر در ASP.Net > راهکار 3 - 4 : ایجاد چندین تم با قابلیت انتخاب توسط
کاربر در ASP.Net
مقدمه :
این راهکار نحوه ساخت یک صفحه ASP.Net را به شما آموزش می دهد ، که در آن کاربر می
تواند از بین چندین تم آماده شده و موجود ، یکی را برای نمایش در صفحه انتخاب نماید
.
گرچه در این راهکار برای آموزش مطلب از یک کنترل Skin تکی و یک فایل ساده استایل شیت
CSS استفاده می کنیم ، اما نحوه کلی و شالوده کار برای پروژه های بزرگتر و تم های سنگین
نیز به همین منوال است .
مطاب آموزش داده شده در این راهکار عبارتند از :
- طراحی یک تم ( Theme ) در ویژوال استودیو که شامل یک کنترل Skin و یک فایل CSS است
.
- طراحی یک صفحه مسترپیج ASP.Net که از تم استفاده می کند .
- طراحی یک صفحه ASP.Net که از یک مسترپیج تم دار استفاده می کند .
- طراحی یک کنترل کادر کشویی ( drop-down list ) ، که کاربر می تواند تم موردنظر خود
را از درون آن انتخاب کند .
- اجرای صفحه و انتخاب تم های مختلف .
برای حمایت از این پروژه ، کتاب
راهکارهای موثر در ASP.Net را دانلود نمایید ...
پیش نیازها :
برای اجرای این راهکار نیاز دارید تا برنامه های زیر بر روی کامپیوتر شما نصب شده باشد
:
- Microsoft Visual Studio .
- آشنایی با نحوه کار با نرم افزار ویژوال استودیو .
مرحله اول - طراحی یک سایت ASP.Net :
در مرحله اول از راهکار بایستی یک سایت ASP.Net را برای اجرای پروژه خود ایجاد نمایید
. فرض بر این است که سایت را قبلا ایجاد کرده و یا با نحوه اجرای آن آشنایی دارید ،
در غیر اینصورت به راهکار شماره 1-1 : نحوه ایجاد یک وب سایت ASP.Net در ویژوال استودیو
بروید .
مرحله دوم - طراحی یک تم :
یک تم مجموعه ای از خواص است که به شما امکان می دهد تا ظاهر و نمای کلی یک صفحه و
اجزای آن را تعیین نمایید .
تم ها از چندین المنت مختلف مثل کنترل های Skin ، فایل های CSS ، تصاویر و ... تشکیل
شده اند . در این راهکار شما از یک Skin و فایل استایل شیت برای ایجاد تم استفاده می
کنید . تم ها در پوشه های مخصوصی در ساختار سایت های ASP.Net به نام پوشه App_Theme
و زیر مجموعه های آن قرار می گیرند .
نحوه طراحی یک تم :
- در منوی Solution Explorer ، بر روی نام وب سایت یا پروژه خود کلیک راست کرده و گزینه
Add ASP.NET Folder را باز نموده و پوشه Theme را به سایت اضافه کنید .
پوشه ای به نام App_Themes که یک پوشه فرزند جدید به نام Theme1 درون آن قرار دارد
، به سایت اضافه می شود .
- نام پوشه Theme1 را به Blue تغییر دهید .
- بر روی پوشه Blue کلیک راست کرده و و گزینه Add New Item را بزنید . پنجره Add New
Item مطابق تصویر زیر باز می شود :
- از پنجره باز شده یک فایل Skin File را انتخاب کرده و نام آن را default.skin تعیین
نموده و گزینه Add را بزنید .
- مجددا بر روی پوشه Blue کلیک راست کرده و گزینه Add New Item را بازهم انتخاب کنید
.
- از پنجره باز شده ، نوع فایل Style Sheet را انتخاب کرده و نام آن را default.css تعیین
نموده و گزینه Add را بزنید .
اولین تم با یک فایل CSS و یک فایل Skin خالی به پروژه اضافه شده است . در مراحل بعدی
تنظیمات لازم و کدهای لازم را در این فایل ها قرار خواهیم داد . اما قبل از آن نیاز
داریم تا صفحه ASP.Net ای را طراحی کنیم ، تا شامل چندین کنترل سرور و کدهای HTML باشد
تا تم به آن اعمال شود .
ایجاد یک مسترپیج Master Page :
برای نشان دادن اینکه یک تم می تواند هم به یک مسترپیج و هم به صفحه یا صفحاتی که از
آن مسترپیج استفاده می کنند ، اعمال شود ، در این مرحله یک مسترپیج را طراحی می کنیم
تا با فایل Default.apsx به کار رود .
نحوه طراحی یک مسترپیج :
- در منوی Solution Explorer ، بر روی نام وب سایت کلیک راست کرده و گزینه Add New Item
را کلیک نمایید .
- در زیر بخش Visual Studio installed templates ، گزینه Master Page را انتخاب کرده
و نام آن را Master1.master تعیین کنید .
- در لیست Language ، زبان برنامه نویسی مورد نظر خود را انتخاب نمایید .
- علامت گزینه Place code in separate file را برداشته و گزینه Add را بزنید .
راهنمایی : صفحه Master Page جدید در نمای کد Source باز می شود .
توجه داشته باشید که در بالای صفحات مسترپیج @ Master قرار دارد ، بر خلاف صفحات ASP.Net
که اعلان آن به صورت @ Page است .
بخش body مسترپیج شامل کنترلی به نام asp:contentplaceholder با ID برابر با
ContentPlaceHolder1 می باشد ، که در برگیرنده بخشی از صفحه مسترپیج بوده
که بخش قابل تعویض و متغیر هر صفحه زیر مجموعه آن ( Content Page ) در آن قرار می گیرد
. در مراحل بعدی بیشتر با نحوه کار این کنترل آشنا خواهید شد . کد پیش فرض فایل مستر
پیج در تصویر زیر نمایش داده شده است :
طراحی مسترپیج :
مسترپیج المنت هایی که صفحه را می سازند ، مشخص می کند . این صفحه می تواند ترکیبی
از متن و کنترل ها باشد . یک مسترپیج همچنین می تواند شامل یک یا چند placeholders
بوده ، که محتویات صفحات متصل به آن را در هنگام اجرا نمایش می دهد .
در این راهکار ، ما از یک جدول که شامل یک عنوان و چندین خط و یک کنترل placeholder
که محتویات صفحه Home.aspx را در بر می گیرد ، بر روی مسترپیج استفاده کرده ایم .
نحوه طراحی یک جدول برای مسترپیج :
فایل Master1.master را انتخاب نمایید . متن بین تگ form را در فایل مسترپیج پاک کرده
و به جای آن کد زیر را وارد نمایید .
نکته : توجه داشته باشید که کد زیر ، کنترل placeholder را درون یک
جدول قرار می دهد ، به جای اینکه بین تگ div باشد ( برخلاف حالت پیش فرض مسترپیج قبل
).
|
کد
|
<table width="100%" cellspacing="0" cellpadding="0" border="0" class="header">
<tr>
<td class="title">Switchable Themes
Example</td>
</tr>
<tr>
<td> <hr /> </td>
</tr>
<tr>
<td>
<asp:contentplaceholder
id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</td>
</tr>
<tr>
<td> <hr /> </td>
</tr>
</table>
|
طراحی صفحه محتویات ( Content Page ) :
فایل مسترپیج ، قالب کلی صفحاتی که به آن وصل می شوند ( Content Pages یا صفحات محتوا
) را تعیین می کند . صفحه های محتوا ، صفحات ساده ASP.Net ای هستند که فقط شامل کدهای
معمولی بوده و با صفحه مسترپیج ترکیب می شوند . در واقع صفحه خروجی ، ترکیبی از مسترپیج
و صفحه محتوا است .
صفحه محتوا در این راهکار ، از تم ای که برای مسترپیج آن در مراحل قبل تعیین کرده ایم
، استفاده می کند . این صفحه دارای یک عنوان ، یک کنترل placeholder و یک کنترل drop-down
list است . همچنین در بخش اعلان صفحه یا @ Page ، به وسیله خاصیت MasterPageFile ،
نام فایل مسترپیج را برای آن تعیین می کنیم .
نحوه طراحی صفحات محتوا ( Content Pages ) :
- در منوی Solution Explorer بر روی نام وب سایت کلیک راست کرده و گزینه Add New Item
را انتخاب کنید .
- از زیر بخش Visual Studio installed templates ، گزینه Web Form را انتخاب نموده و
نام آن Home.aspx قرار دهید .
- در بخش لیست زبان ها Languages ، زبان برنامه نویسی مورد نظر خود را انتخاب نمایید
.
- همچنین گزینه Select Master Page را علامت زده و گزینه Add را کلیک نمایید .
کادر Select Master Page باز می شود . از لیست باز شده ، فایل Master1.master را به
عنوان مسترپیج مورد نظرتان انتخاب کرده و Ok را بزنید .
- یک فایل جدید با نام Home.aspx ، ایجاد می شود . این صفحه به وسیله خاصیت MasterPageFile
در بخش اعلان صفحه @ Page ، به فایل مسترپیج مربوط به آن متصل شده است . همانند کد
زیر :
|
VB کد
|
<%@ Page Language="VB" MasterPageFile="~/Master1.master"
... %>
|
|
C# کد
|
<%@ Page Language="C#" MasterPageFile="~/Master1.master"
... %>
|
- همچنین صفحه داری یک کنترل به نام <asp:Content> است که محتویات مورد نظر خود
برای آن صفحه را ، درون آن قرار می دهید .
اضافه کردن محتوا به صفحه محتویات ( Content Page ) :
یک صفحه محتوا ( Content Page ) شامل المنت های معمولی که یک صفحه ساده ASP.Net را
می سازند ، مثل html ، body ، form و ... نمی شوند .
به جای آن ، تمامی محتویات که می خواهید صفحه محتوا نمایش دهد را درون کنترل placeholder
قرار می دهید .
در این مثال ، به صفحه محتوا یک المنت h1 و h2 ، یک پاراگراف و یک کنترل کشویی drop-down
list را برای انتخاب تم اضافه می کنیم .
اضافه کردن محتوا به صفحه home page :
- کد زیر را درون تگ باز و بسته کنترل <asp:Content> با ID برابر با Content2 یا
دوم قرار دهید :
|
کد
|
<h1 id="title1">
عنوان صفحه
</h1>
<br />
<h2 id="title2">
محتویاتی برای صفحه
</h2>
<p>
یک رنگ را برای اعمال تم آن از کادر کشویی انتخاب نمایید
</p>
<br />
<asp:DropDownList ID="ddlThemes" runat="server" AutoPostBack="true">
<asp:ListItem Value="Blue"> Blue </asp:ListItem>
<asp:ListItem Value="Red"> Red </asp:ListItem>
<asp:ListItem Value="Green"> Green </asp:ListItem>
</asp:DropDownList>
|
- کد زیر را نیز به صفحه اضافه نمایید تا تم انتخاب شده توسط کنترل drop-down list ،
را به صفحه اعمال کند . این کد بایستی در صفحه محتوا پس از خط اعلان صفحه @ Page قرار
بگیرد .
|
VB کد
|
<script runat="server">
Public Sub Page_PreInit( )
' این کد تم صفحه را تعیین می کند
Me.Theme = "Blue"
If ((Not (Request.Form)
Is Nothing) AndAlso (Request.Form.Count > 0)) Then
Me.Theme = Me.Request.Form(5).Trim
End If
End Sub
</script>
|
|
C# کد
|
<script runat="server">
public void Page_PreInit( )
{
// این کد تم صفحه را تعیین
می کند
this.Theme = "Blue";
if (Request.Form
!= null && Request.Form.Count > 0)
this.Theme = this.Request.Form[5].Trim();
}
</script>
|
- راهنمایی : توضیح کد اسکریپت :: تم در طی فرآیند تولید صفحه توسط
رویداد PreInit فراخوانی و اعمال می شود . این رویداد قبل از رندر شدن صفحه رخ می دهد
.
فرم درخواست صفحه ( Page Request Form ) شامل آرایه ای از مقادیر است و آرایه با اندیس
4 ، شامل مقدار انتخاب شده در کنترل drop-down list می باشد . هر بار که صفحه رفرش
شده یا باز می شود ، مقدار انتخاب شده در کنترل drop-down list ، به عنوان تم صفحه
، بر روی آن اعمال می شود .
مرحله بعدی در این راهکار ، تعیین چندین تم برای انتخاب توسط کاربر است .
ویرایش تم Blue :
تم Blue ای که در مراحل قبل این راهکار ایجاد کردیم ، دارای 2 فایل CSS و Skin خالی
است . در این مرحله می خواهیم بر حسب نیاز و سلیقه خود ، ویژگی ها و خواص مورد نطر
را برای صفحه و کنترل های آن در این 2 فایل تعیین کنیم . برای این منظور مراحل زیر
را انجام دهید :
- فایل default.skin را باز کرده و کد زیر را برای قالب دهی به کنترل drop-down list
وارد نمایید :
|
کد
|
<asp:dropdownlist runat="server" ForeColor="white" BackColor="Blue" />
|
- فایل default.css را از پوشه تم Blue باز کرده و کد زیر را برای قالب دهی جدول عنوان
در مسترپیج وارد نمایید :
|
کد
|
table.header
{
background-color: Blue;
}
td.title
{
font-size: 1em;
text-align: center;
font-family: verdana;
font-size: x-large;
font-weight: bolder;
color: Navy;
}
|
- در مرحله بعدی کدهای CSS زیر را برای قالب بندی تگ های h1 و h2 که در صفحه محتوا هستند
، به فایل استایل شیت اضافه نمایید :
|
کد
|
h1
{
font-size: large;
color: Navy;
}
h2
{
font-family: Verdana;
font-size: medium;
margin-top: 30;
color: Navy;
}
|
- در پایان نیز خواص لازم برای تگ های پاراگراف و خط های افقی ( hr ) را به وسیله کدهای
زیر را تعیین نمایید :
|
کد
|
p
{
font-family: Verdana;
font-size: small;
color: Aqua;
text-align: left;
}
hr
{
border: 0;
border-top: 2px solid Aqua;
height: 2px;
}
|
اعمال و اتصال تم به صفحه :
برای اتصال و اعمال تم ایجاد شده به صفحه ، مراحل زیر را انجام دهید :
- فایل Home.apsx را در حالت کد Source باز نمایید .
- در بخش اعلان صفحه @ Page خاصیت StyleSheetTheme را معادل با نام تم اضافه نمایید .
همانند کد زیر :
|
VB کد
|
<%@ Page Language="VB" MasterPageFile="~/Master1.master" Title="Switchable Themes"
StylesheetTheme="Blue" %>
|
|
C# کد
|
<%@ Page Language="C#" MasterPageFile="~/Master1.master" Title="Switchable Themes"
StylesheetTheme="Blue" %>
|
امتحان کردن صفحه :
هم اکنون می توانید صفحه ASP.Net خود را همانند سایر صفحات دیگر ، اجرا و آزمایش نمایید
.
برای این منظور کلیدهای CRTL + F5 را همزمان فشار دهید . ASP.Net صفحه محتوا یعنی (
Home.aspx ) را با مسترپیج آن یعنی ( Master1.master ) ترکیب کرده ، تم Blue را به
آن اعمال نموده و خروجی را در صفحه نمایش می دهد .
طراحی چند تم اضافه دیگر :
تم Blue ، تم زیبا و مناسبی است ، اما هدف ما در این راهکار ارایه چندین تم به کاربر
برای انتخاب یکی از میان آنهاست . می توانید فایل های CSS و Skin موجود در تم Blue
را کپی کرده و در پوشه جدیدی بریزید . سپس مقادیر خواص و رنگ های آن را به مقادیر دلخواه
و متفاوتی تغییر دهید . در طی مراحل زیر دو تم دیگر با نام های Red و Green طراحی خواهیم
کرد :
طراحی دو تم اضافه دیگر :
- در منوی Solution Explorer ، بر روی پوشه App_Themes کلیک راست کرده ، از گزینه Add
New Item ، یک پوشه جدید Theme را به پروژه اضافه نمایید . در ابتدا نام پوشه جدید
Theme1 است ، آن را به Red تغییر دهید .
- پوشه Blue را انتخاب کرده ، فایل های default.skin و default.css را کپی کرده و در
پوشه Red بریزید .
- مراحل 1 و 2 را برای ایجاد یک پوشه جدید دیگر به نام Green انجام دهید .
- مقادیر خواص های رنگی را در تم های Red و Green به رنگ های متناسب با نام آنها تغییر
داده و تنظیم نمایید .
برای مثال ، کد فایل CSS تم Green می تواند به صورت زیر به روز رسانی شود :
|
کد
|
p
{
font-family: Verdana;
font-size: small;
color: Teal;
text-align: left;
}
hr
{
border: 0;
border-top: 2px solid Teal;
height: 2px;
}
h1
{
font-size: large;
color: Green;
}
h2
{
font-family: Verdana;
font-size: medium;
margin-top: 30;
color: Green;
}
table.header
{
background-color: Lime;
}
td.title
{
font-size: 1em;
text-align: center;
font-family: verdana;
font-size: x-large;
font-weight: bolder;
color: Teal;
}
|
مرحله آخر ، آزمایش مجموعه تم ها :
اکنون پروژه به طور کامل آماده شده و کنترل drop-down list ، می تواند برای انتخاب
تم مورد نظرتان از میان تم های موجود به کار رود :
- به صفحه Home.apsx رفته و با زدن کلیدهای Ctrl + F5 ، صفحه را اجرا نمایید .
- یکی از تم های Red یا Green را از کادر کشویی کنترل drop-down lis انتخاب نمایید .
مشاهده خواهید کرد که تم مورد نظر به صفحه و کنترل های موجود در آن اعمال می شود .
دانلود فایل عملی پروژه و نسخه PDF راهکار
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :