Click here to Skip to main content
Click here to Skip to main content

ASP.NET DatePicker (Persian/Gregorian)

By , 12 Nov 2012
 

Introduction

This is just another DatePicker for ASP.NET that supports both Persian (Jalali/Shamsi/Solar) and Gregorian Calendar.

It's JavaScript source code is taken from here.  

This version is not completed yet and I'm going to add more features to it in the near future! 

Properties

Version 1.1.1  (2012-11-13)  
  • Now it supports empty value.
Version 1.1  (2012-10-15)  
  • ReadOnly:  Indicates whether user can change the text or not.  
  • ShowWeekNumber: If "true", then the calendar will display week numbers. 
  • ShowOthers:  If set to "true", then days belonging to months overlapping with the currently displayed month will also be displayed in the calendar (but in a "faded-out" color). 
  • FirstDayOfWeek: Specifies which day is to be displayed as the first day of week. The end user can easily change this too, by clicking on the day name in the calendar header. 
  • OnSelect: function that gets called when a date is selected. You don't have to supply this (the default is generally okay). 
  • OnUpdate: If you supply a function handler here, it will be called right after the target field is updated with a new date. You can use this to chain 2 calendars, for instance to setup a default date in the second just after a date was selected in the first.  
  • OnClose: This handler will be called when the calendar needs to close. You don't need to provide one, but if you do, it's your responsibility to hide/destroy the calendar. You're on your own. 
Version 1.0  (2012-10-07) 
  • Text: Text that is shown in the textbox
  • Date: Selected Gregorian date
  • DatePersian: Selected Persian date
  • CalendarType: Indicates which calendar type (Persian/Gregorian) will be shown

Sample code

For showing the Persian Datepicker:

<rhp:DatePicker ID="DatePicker1" runat="server" 
DatePersian="1391/07/14" CalendarType="Persian"></rhp:DatePicker>  

For showing the Gregorian Datepicker:

<rhp:DatePicker ID="DatePicker2" runat="server" 
Date="2012-10-06" CalendarType="Gregorian"></rhp:DatePicker>  

For getting selected date in postback event:

Label1.Text = "Text: " + DatePicker1.Text;
Label2.Text = "Date: " + DatePicker1.Date.ToString();
Label3.Text = "DatePersian: " + DatePicker1.DatePersian; 

Example for OnUpdate:

function onUpdate(calendar){
            var msg =
                    "<br/>Persian: Year: " + calendar.date.getJalaliFullYear() +
                    ", Month: " + (calendar.date.getJalaliMonth() + 1) +
                    ", Day: " + calendar.date.getJalaliDate() +
                    "<br/>Gregorian: Year: " + calendar.date.getFullYear() +
                    ", Month: " + calendar.date.getMonth() +
                    ", Day: " + calendar.date.getDate();

            logEvent("onUpdate Event: <br> Selected Date: " + 
            calendar.date.print('%Y/%m/%d', 'jalali') + msg);
        }; 

Example for OnSelect:

function onSelect(calendar, date) {
            // Beware that this function is called even if the end-user only
            // changed the month/year. In order to determine if a date was
            // clicked you can use the dateClicked property of the calendar:
            if (calendar.dateClicked) {
                var msg =
                        "<br/>Persian: Year: " + calendar.date.getJalaliFullYear() +
                        ", Month: " + (calendar.date.getJalaliMonth() + 1) +
                        ", Day: " + calendar.date.getJalaliDate() +
                        "<br/>Gregorian: Year: " + calendar.date.getFullYear() +
                        ", Month: " + calendar.date.getMonth() +
                        ", Day: " + calendar.date.getDate();

                $("#<%= DatePicker1.ClientID %>").val(date);
                logEvent("onSelect Event: <br> Selected Date: " + date + msg);
                calendar.hide();
                //calendar.callCloseHandler(); // this calls "onClose"
            }
        }; 

Example for OnClose:

function onClose(calendar) {
            logEvent("onClose Event");
            calendar.hide();
        }; 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Ruhollah Heidarpour
Software Developer (Senior)
Iran (Islamic Republic Of) Iran (Islamic Republic Of)
No Biography provided
Follow on   Google+

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionكند بودن در مرورگر chromememberMember 872726716-Jun-13 21:44 
AnswerRe: كند بودن در مرورگر chromememberRuhollah Heidarpour16-Jun-13 23:43 
Questionتبدیل به میلادی و بالعکسmemberIsan19846-May-13 10:55 
AnswerRe: تبدیل به میلادی و بالعکسmemberRuhollah Heidarpour6-May-13 18:04 
GeneralRe: تبدیل به میلادی و بالعکسmemberIsan19846-May-13 21:29 
GeneralRe: تبدیل به میلادی و بالعکسmemberRuhollah Heidarpour6-May-13 22:11 
GeneralRe: تبدیل به میلادی و بالعکسmemberIsan19846-May-13 23:18 
AnswerRe: تبدیل به میلادی و بالعکسmemberRuhollah Heidarpour7-May-13 0:16 
QuestionتشکرmemberSenior Web Dveloper27-Apr-13 2:37 
AnswerRe: تشکرmemberRuhollah Heidarpour27-Apr-13 2:49 
GeneralMy vote of 5memberterma6612-Feb-13 0:20 
Questionلطفا اگر ممکنه نحوه استفاده از این کد رو هم بزاریدmembermohammadjoon211-Dec-12 4:30 
میدونم شاید سوالم ابتدایی باشه ولی اگر ممکنه آموزش استفاده از این کد رو بفرمایید.ممنون
AnswerRe: لطفا اگر ممکنه نحوه استفاده از این کد رو هم بزاریدmemberRuhollah Heidarpour14-Dec-12 7:07 
Questionاستفاده در ام وی سیmemberMbahreini25-Nov-12 10:58 
AnswerRe: استفاده در ام وی سیmemberRuhollah Heidarpour25-Nov-12 17:42 
QuestionEnglish in commentsmvpMika Wendelius12-Nov-12 20:13 
Questionسوالmemberqweqweqwew12-Nov-12 2:57 
AnswerRe: سوالmemberRuhollah Heidarpour12-Nov-12 18:51 
GeneralMy vote of 5memberZRNCompany6-Nov-12 2:07 
Questionشناسایی با مرور گرهاmemberarh668-Oct-12 9:13 
AnswerRe: شناسایی با مرور گرهاmemberRuhollah Heidarpour9-Oct-12 20:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130617.1 | Last Updated 13 Nov 2012
Article Copyright 2012 by Ruhollah Heidarpour
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid