Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

PersianCalendar WebControl Using With AJAX.NET & AjaxControlToolkit

4.80/5 (29 votes)
15 Feb 2007CPOL 5   4.8K  
This is a Persian web calendar with full features like ASP.NET 2.0 Calendar Control

Sample Image - PersianCalendarControl.jpg

Introduction

This is a Persian calendar Web Custom control with full features like ASP.NET 2.0 Calendar.

In the demo project, I have used AJAX.NET and AjaxControlToolkit(http://ajax.asp.net/downloads/default.aspx?tabid=47).

For retrieving & setting the Persian date, use "SelectedDatePersian" Properties.You can also use "SelectedDate" Properties for retrieving the selected date in Christ format.This control supports range date selection. For enabling this feature, you must set "SelectionMode" properties to "DayWeekMonth" or "DayWeek" and for retrieving, selected dates range from "SelectedDates" Properties.

C#
PersianCalendar1.SelectionMode = CalendarSelectionMode.DayWeekMonth;
List<DateTime> selectedDates = 
    (List<DateTime>)PersianCalendar1.SelectedDates.GetEnumerator();

For formatting the selected Persian date, use "SelectedPersianDateFormat".

C#
PersianCalendar1.SelectedPersianDateFormat == 
                    PersianDateStringType.LongReverse;

or

C#
PersianCalendar1.SelectedPersianDateFormat == PersianDateStringType.Short;

This example demonstrates how to use the PersianCalendar Control with AJAX UpdatePanel.

ASP.NET
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" 
            Inherits="AJAXEnabledWebApplication1._Default" %>
<%@ Register Assembly="KingOf.Net.Web.UI.WebControls.PersianCalendar" 
    Namespace="KingOf.Net.Web.UI.WebControls" TagPrefix="KingOfDotNet" %>
<%@ Register Assembly="AjaxControlToolkit" 
    Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
  <form id="form1" runat="server">
      Persian Calendar Web Control Compatible With Ajax.Net<br />
      <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True">
    </asp:TextBox><br />
      <asp:ScriptManager ID="ScriptManager1" runat="server" />
      <div>
          <cc1:PopupControlExtender ID="PopupControlExtender1" 
        runat="server" TargetControlID="TextBox1"
                PopupControlID="Panel1" Position="Bottom">
          </cc1:PopupControlExtender>
          <asp:Panel ID="Panel1" runat="server" CssClass="popupControl">
              <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                  <ContentTemplate>
                      <center>
                          <KingOfDotNet:PersianCalendar ID="PersianCalendar1" 
                        runat="server" BackColor="#FFFFCC"
                              BorderColor="#FFCC66" BorderWidth="1px" 
                        DayNameFormat="Shortest" Font-Names="Verdana"
                              Font-Size="8pt" ForeColor="#663399" 
                        Height="200px" OnSelectionChanged=
                            "PersianCalendar1_SelectionChanged"
                              SelectedDate="2000-01-01" ShowGridLines="True" 
                            VisibleDate="2000-01-01" Width="220px"
                              SelectedPersianDateFormat="Long">
                              <SelectedDayStyle BackColor="#CCCCFF" 
                                Font-Bold="True" />
                              <TodayDayStyle BackColor="#FFCC66" 
                                ForeColor="White" />
                              <SelectorStyle BackColor="#FFCC66" />
                              <OtherMonthDayStyle ForeColor="#CC9966" />
                              <NextPrevStyle Font-Size="9pt" 
                                ForeColor="#FFFFCC" />
                              <DayHeaderStyle BackColor="#FFCC66" 
                            Font-Bold="True" Height="1px" />
                              <TitleStyle BackColor="#990000" 
                            Font-Bold="True" Font-Size="9pt" 
                            ForeColor="#FFFFCC" />
                          </KingOfDotNet:PersianCalendar>
                          &nbsp;
                      </center>
                  </ContentTemplate>
              </asp:UpdatePanel>
          </asp:Panel>
      </div>
  </form>
</body>
</html>

C#
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Globalization;
using KingOf.Net.Web.UI.WebControls;

namespace AJAXEnabledWebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void PersianCalendar1_SelectionChanged
                                (object sender, EventArgs e)
        {
            PopupControlExtender1.Commit(PersianCalendar1.SelectedDatePersian);
        }
    }
}

License

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