تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة :: التقويم Calendar
#1
كاتب الموضوع محمد الناشـري

السلام عليكم ورحمة الله
عنصر التحكم Calendar
يعد عنصر التحكم Calendar من عناصر التحكم الغنية ( يمكن برمجتة ككائن مفرد ) .
يظهر بشكل افتراضي في طريقة العرض الشهرية حيث ينتقل المستخدم شهراً شهراً .
عند النقر فوق التاريخ يتم تميزة بلون مختلف .
يمكن استرداد اليوم باعتبارة الكائن DateTime من الخاصية Calender.SelectedDate
كما يمكن ايضاً عمل الكثير من اوضاع التحديد للسماح للمستخدمين بتحديد اسابيع او اشهر بأكملها أو جعل التقويم ثابت لايتطلب عمل اي تحديد
وذلك من خلال الخاصية Selection Mode كالاتي :

1 - None جعل التقويم ثابت .
2 - Day تحديد يوم معين .
3 - DayWeek تحدد اسابيع .
4 - DayWeekMonth تحدد اشهر .
مع ملاحظة أن عند الضبط على DayWeek فان المستخدم يستطيع تحديد الايام ايضاً .. وكذلك مع DayWeekMonth .

يمكن تحديد بداية الاسبوع من الخاصية FirstDayofWeek .

تنسيق التقويم
هناك العديد من التنسيقات التي يمكن تطبيقها مباشرة على هذا العنصر ويمكن الوصول اليها من Calendar Tasks ثم AutoFormat
هناك ايضاً العديد من الخصائص للتحكم بالمظهر والتي يمكن ضبطها مثل DayHeadrStyle و DayStyle الخ ... والتي اتركها للمحاولة والاكتشاف .

الحصول على قيمة التاريخ ( مجموعة من التواريخ ) المحددة في التقويم
يمكن باستخدام الحلقة For Each من خلال الخاصية SelectedDates الحصول على التاريخ او مجموعة التواريخ المحددة في التقويم كالاتي :


كود :
Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
Dim dt As DateTime
For Each dt In Calendar1.SelectedDates
lblDates.Text &= dt.ToLongDateString()
Next
End Sub
تقيد التاريخ Restricting Dates
عند استخدام تقويم لعمل تحديد .. فقد لاتريد السماح للمستخدمين بتحديد تاريخ اعلى من تاريخ اليوم الحالي مثلاً
الفكرة الاساسية في تقييد التاريخ هي باستخدام الحدث Calendar.DayRender يتم انشاء الحدث عندما يكون التقويم على وشك اعداد شهر ليتم عرضة للمستخدم .
الامر الذي يتيح امكانية التحقق من التاريخ الذي يتم اضافتة الى الشهر الحالي من خلال الخاصية ( e.Day ) وتقرير ما اذا كان التاريخ سيكون قابلا للتحديد ام لا ..

كود :
Private Sub DayRender(ByVal source As Object, ByVal e As DayRenderEventArgs) Handles Calendar1.DayRender
If e.Day.IsWeekend Or e.Day.Date.Year > 2009 Then
e.Day.IsSelectable = False
End If


End Sub


يتبع ..
الرد }}}}
تم الشكر بواسطة:
#2
يوفر الكائن e.Day للفئة CalendarDay العديد من الخصائص مثل

Date : الكائن DateTime الذي يمثل التاريخ .

IsWeekend : يتم تعينهاالى True اذا وافق التاريخ السبت او الاحد .

IsToday : يتم تعيينها الى True اذا تطابقت هذة القيمة مع الخاصية Calendar.Today التي يتم تعيينها الى اليوم الحالي بشكل افتراضي .

IsOtherMonth سيتم تعينها الى True اذا لم ينتمى هذا التاريخ الى الشهر الحالي . ولكن يتم عرضها لتملئ الصف الول او الاخير
مثال قد يكون التاريخ هو اليوم الاخير للشهر السابق .

IsSelectable : تتيح هذة الخاصية تكوين الاعداد الذي يساعد على معرفة ان المستخدم يمكنة تحديد هذا اليوم ام لا . كما مر معنا في المثال السابق .

يمكن تحديد يوم معين من الشهر ليتم تميزة وتنسيقة بشكل مختلف كذلك يمكن اضافتة عنصر تحكم Label لكتابة نص بداخلة كالاتي

كود :
Private Sub DayRender(ByVal source As Object, ByVal e As DayRenderEventArgs) Handles Calendar1.DayRender
If e.Day.Date.Day = 5 And e.Day.Date.Month = 5 Then
e.Cell.BackColor = System.Drawing.Color.Green
Dim lbl As New Label
lbl.Text = "تاريخ ميلادي "
e.Cell.Controls.Add(lbl)
End If
End Sub
الرد }}}}
تم الشكر بواسطة:
#3
يعطيك العافية على الشرح بس ممكن اطلب طلب
اذا بدي اعمل عملية حفظ لحدث معين عن باستخدام التقويم و احفظه بس مو بنفس التقويم كحدث على قائمة اخرى و اعرض جميع الاحداث بحسب التاريخ
الرد }}}}
تم الشكر بواسطة:
#4
Good . . .. ...
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  { معلومة} .. معلومات Request سعود 3 773 25-05-13, 01:26 PM
آخر رد: shaker.soft
  معلومة :: Datalist Paging RaggiTech 0 448 29-09-12, 12:31 PM
آخر رد: RaggiTech
  معلومة ImageMap :: جميلة للغاية RaggiTech 1 414 29-09-12, 04:37 AM
آخر رد: RaggiTech
  معلومة Error pages -- مهمة للغاية RaggiTech 1 370 29-09-12, 04:33 AM
آخر رد: RaggiTech
  معلومة:: أجزاء الويب Web Parts RaggiTech 4 833 29-09-12, 04:23 AM
آخر رد: RaggiTech
  معلومة :: Site Navigation RaggiTech 0 394 29-09-12, 04:08 AM
آخر رد: RaggiTech
  معلومة :: WebUserControl RaggiTech 1 382 29-09-12, 04:02 AM
آخر رد: RaggiTech
  معلومة ::: AdRotator RaggiTech 1 530 29-09-12, 03:42 AM
آخر رد: RaggiTech
  ::معلومة:: Datalist Paging a_senan 0 386 21-09-12, 05:51 PM
آخر رد: a_senan
  معلومة :: إضافة أكثر من Site Map للموقع a_senan 0 316 21-09-12, 05:47 PM
آخر رد: a_senan

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم