با سلام به شمادوستان گرامی، وبمستران عزیز حالتون که خوبه؟ با اموزش دیگری در خدمتتون هستم در مورد کنترل های Asp ، کنترلی داریم به نام calender که درمورد آن میخوام توضیح بدم.کنترل Calendar در واقع یک کنترل وب بسیار غنی از لحاظ قابلیت می باشد. کنترل مزبور برای نمایش یک تقویم بر روی صفحه بکار می رود. این تقویم، تاریخ ماه جاری را در قالب ۶ هفته برای کاربر به نمایش می گذارد. می توان بین روزها و ماه ها حرکت کرده و تاریخ مورد نظر خود را انتخاب یا مشاهده کرد. تاریخ نمایش داده شده، در واقع با تاریخ جاری سرویس دهنده (server) مطابق خواهد بود.

کنترل تقویم مبتنی بر شی DateTime در ASP.Netساخته شده و طیف گسترده ای از تاریخ را پشتیبانی می کند.

قابلیت های گوناگونی که این کنترل در اختیار شما قرار می دهد به ترتیب زیر می باشد.

نمایش ماه

امکان انتخاب روز، هفته و یا یک ماه

انتخاب طیف وسیعی از روزها

حرکت از یک ماه به ماه دیگر

کنترل نمایش روزها به صورت programmatically (به صورت برنامه ای)

نحوه ی نگارش (syntax) کلی کنترل Calender به شرح زیر می باشد.

‎‎<asp:Calender ID=”Calendar1″ runat=”server”> ‎

‎</asp:Calender>

 

خواص و رخدادهای کنترل Calender

کنترل نام برده دارای خاصیت ها و رخدادهای فراوانی است که با استفاده از آن ها می توانید ظاهر و عملیاتی که این کنترل قادر به انجام آن خواهد بود را سفارشی تنظیم کنید. جدول زیر برخی از این خواص (property) را فهرست می کند.

 

خاصیت  شرح 
Caption یک مقدار متنی خوانده (get) و مقداردهی (set) می کند که به عنوان یک   caption (عنوان) برای تقویم نمایش داده می شود.

Caption به منظور ارائه ی توصیفی مختصر درباره ی نوع جدول بکار می رود.

CaptionAlign مکان قرار گیری متن عنوان (caption) کنترل تقویم را تعیین می کند.
CellPadding مقدار فضای خالی (فاصله) بین داده و خط حاشیه ی cell (یک خانه از جدول) را خوانده و مقداردهی می کند (این خاصیت حاشیه درونی خانه هایی که تاریخ های روزها را نمایش می دهند، مشخص می کند(.
CellSpacing فاصله ی بین خانه های جدول را تنظیم می کند (این خاصیت فاصله بیرونی خانه هایی که تاریخ های روزها را نمایش می دهند، مقداردهی می کند).
DayHeaderStyle Style propertyهای بخش نمایش دهنده ی روزهای هفته در کنترل تقویم را برمی گرداند (با استفاده از این خاصیت می توان سبک یا استایل بخش نمایش دهنده ی روزهای هفته را تعیین کرد).
DayNameFormat قالب یا فرمت نمایش اسم روزهای هفته (اینکه اسم روز مورد نظر به صورت کامل یا به اختصار نمایش داده شود) در کنترل تقویم را خوانده و مقداردهی می کند.
DayStyle به وسیله ی این خاصیت می توان style روزهای ماه نمایش داده شده را مشخص کرد.
FirstDayOfWeek روز هفته ای که در اولین ستون نمایش داده می شود را خوانده و مقداردهی می کند.
NextMonthText متنی که برای کنترل پیمایش (nav control) ماه بعدی نمایش داده می شود را خوانده و مقداردهی می کند. مقدار پیش فرض >می باشد.
NextPrevFormat قالب بندی یا فرمت المان های پیمایش (nav element) ماه قبلی و بعدی را در بخش عنوان (title section) کنترل Calendar خوانده و مقدار دهی می کند.

فرمت کنترل پیمایش (navigation control) ماه قبلی و بعدی را تعیین می کند.

OtherMonthDayStyle به وسیله این خاصیت می توان style روزهای کنترل تقویم که در ماه جاری ( نمایش داده شده) موجود نیستند را تعیین کرد.
PrevMonthText متنی که برای کنترل پیمایش (nav control) ماه قبلی نمایش داده می شود را خوانده و مقداردهی می کند. مقدار پیش فرض &lt; می باشد.
SelectedDate روز انتخاب شده را خوانده یا مقداردهی می کند.
SelectedDates آرایه ای از اشیا DateTime که نشانگر تاریخ های انتخاب شده هستند برمی گرداند.
SelectedDayStyle مقدار style تاریخ انتخابی را بازیابی می کند.
SelectionMode به وسیله ی این خاصیت می توان selection mode را تنظیم کرد. Selection mode تعیین می کند آیا کاربر اجازه دارد تنها یک روز یا هفته و یا یک ماه کامل را انتخاب کند یا خیر.
SelectMonthText نام ماه انتخابی کاربر را در ستون selector تنظیم و یا بازیابی می نماید.
SelectorStyle مقدار style را برای selector هفته و ماه بازیابی می نماید.
SelectWeekText در ستون selector به وسیله ی این property می توان متن مورد نمایش را تنظیم و یا بازیابی کرد.
ShowDayHeader به وسیله ی این خصوصیت می توان تعیین نمود که آیا سرستون نام روز هفته نمایش داده شود یا خیر.
ShowGridLines این خاصیت تعیین می کند، آیا خطوط راهنما و درونی کنترل نمایش داده شود یا خیر. یکی از مقادیر true یا false را می تواند داشته باشد.
ShowNextPrevMonth به وسیله ی این property می توان تعیین نمود آیا گزینه ی قبلی و بعدی برای گزینشگر ماه نمایش داده شود یا خیر.
ShowTitle توسط این property می توان تعیین نمود که آیا عنوان (title) نمایش داده شود یا خیر.
TitleFormat فرمت دهی بخش عنوان کنترل Calendar را خوانده و تنظیم می کند.
TodayDayStyle مقدار style تاریخ جاری را در calendar بازیابی می کند.
TodaysDate شماره (مقدار) تاریخ روز جاری را خوانده و مقداردهی می کند.
VisibleDate  (مقدار( تاریخی که تعیین کننده ی ماه نمایش داده شده می باشد را خوانده و مقداردهی می کند.
WeekendDayStyle مقدار style property را برای روزهای تعطیل آخر هفته بازیابی می نماید.

کنترل Calendar دارای سه رویداد است که زیر فهرست شده.

رخداد  شرح 
SelectionChanged زمانی فعال می شود که یک روز، هفته یا یک ماه کامل انتخاب شده باشد.
DayRender هنگامی روی می دهد / فعال می شود که تمامی خانه ها یا cell های کنترل تقویم بارگذاری شده و به نمایش گذاشته شود (render).
VisibleMonthChanged زمانی رخ می دهد که کاربر ماه را انتخاب کند.

کار با کنترل Calendar

قرار دادن یک کنترل Calender که فقط دارای اجزای اصلی بوده و هیچ code-behind ای نداشته باشد، صرفا یک تقویم ساده در اختیار سایت قرار می دهد که تنها روز، ماه و سال را نشان می دهد و همچنین امکان حرکت بین ماه ها را فراهم می کند.

 

کنترل Calendar به کاربر اجازه می دهد روز، هفته و ماه را مطابق میل انتخاب کند. این کار با استفاده از خاصیت SelectionMode امکان پذیر می باشد. خاصیت مذکور دارای مقادیر زیر می باشد.

خاصیت  شرح 
Day با تخصیص این مقدار به خاصیت Selection mode می توان فقط روز را انتخاب کرد.
DayWeek با تخصیص این مقدار به خاصیت مزبور می توان یک روز یا یک هفته را انتخاب کرد.
DayWeekMonth مقداری که با تخصیص آن به خاصیت Selection mode می توان یک روز، هفته یا ماه را انتخاب کرد.
None هنگامی که خاصیت Selection mode روی مقدار none تنظیم شده باشد، امکان انتخاب هیچ یک از موارد بالا وجود ندارد.

دستور نگارش (syntax)

<asp:Calender ID=”Calendar1″ runat=”server” ‎SelectionMode=”DayWeekMonth”>   ‎

‎</asp:Calender>‎

هنگامی که خاصیت selection mode روی مقدار DayWeekMonth تنظیم می شود، ستونی با علامت > ظاهر می شود که امکان انتخاب ماه را فراهم می کند، همچنین علامت >> در سمت چپ اسم روز پدیدار می شود که اجازه ی انتخاب ماه را به کاربر می دهد.

 

 

 

 

 

مثال

مثال زیر نحوه ی انتخاب روز و نشان دادن آن در label را نمایش می دهد.

content file code

<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Calendars.aspx.cs” Inherits=”Asp_Net_Calendars.Calendars” %>

 

<!DOCTYPE html>

 

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head runat=”server”>

<title>

Untitled Page

</title>

</head>

<body>

<form id=”form1″ runat=”server”>

<div>

<h3> Your Birthday:</h3>

<asp:Calendar ID=”Calendar1″ runat=”server” SelectionMode=”DayWeekMonth” onselectionchanged=”Calendar1_SelectionChanged”>

</asp:Calendar>

</div>

<p>Todays date is:

<asp:Label ID=”lblday” runat=”server”></asp:Label>

</p>

<p>Your Birday is:

<asp:Label ID=”lblbday” runat=”server”></asp:Label>

</p>

</form>

</body>

</html>

مدیریت کننده ی رخداد (event handler) SelectionChanged

protected void Calendar1_SelectionChanged(object sender, ‎EventArgs e)‎
‎{‎
‎   lblday.Text = Calendar1.TodaysDate.ToShortDateString();‎
‎   lblbday.Text = Calendar1.SelectedDate.ToShortDateString();‎
‎}

پس از اجرای فایل، خروجی زیر را مشاهده خواهید کرد.