Thursday, May 8, 2014

Calender

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="First.aspx.cs" Inherits="First" %>

<!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></title>
</head>
<body>
<form id="form1" runat="server">
<table border="1">
<tr>
<td colspan="3">
<asp:Label ID="lblError" runat="server" ForeColor="Red"></asp:Label>
</td>
</tr>
<tr align="center">
<td>
<asp:Label ID="lblCalFromDate" runat="server" Text="From Date :"></asp:Label>
</td>
<td>
<asp:Calendar ID="calFrom" runat="server" OtherMonthDayStyle-ForeColor="ActiveBorder"
OnSelectionChanged="calFrom_SelectionChanged">
<NextPrevStyle ForeColor="Brown" />
<WeekendDayStyle ForeColor="Blue" />
</asp:Calendar>
</td>
<td>
<asp:TextBox ID="txtFromDate" runat="server" Enabled="false"></asp:TextBox>
</td>
<td rowspan="2">
<asp:DataList ID="dlCalDisp" runat="server" RepeatColumns="4">
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
<AlternatingItemTemplate>
<%# Container.DataItem %>
</AlternatingItemTemplate>
</asp:DataList>
</td>
</tr>
<tr align="center">
<td>
<asp:Label ID="lblCalToDate" runat="server" Text="To Date :"></asp:Label>
</td>
<td>
<asp:Calendar ID="CalTo" runat="server" OnSelectionChanged="CalTo_SelectionChanged">
<NextPrevStyle ForeColor="Brown" />
<WeekendDayStyle ForeColor="Blue" />
</asp:Calendar>
</td>
<td>
<asp:TextBox ID="txtToDate" runat="server" Enabled="false"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblRecurrence" runat="server" Text="Recurrence :"></asp:Label>
</td>
<td>
<asp:RadioButtonList ID="rbRecurrence" runat="server" RepeatDirection="Horizontal"
OnSelectedIndexChanged="rbRecurrence_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem Value="0" Text="Repeated"></asp:ListItem>
<asp:ListItem Value="1" Text="Repeated On"></asp:ListItem>
</asp:RadioButtonList>
</td>
<td colspan="2">
<asp:Panel ID="pnlRepeated" runat="server" GroupingText="Repeated" Visible="false">
<asp:DropDownList ID="ddlEvery" runat="server" OnSelectedIndexChanged="ddlEvery_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
<asp:DropDownList ID="ddlDay" runat="server" OnSelectedIndexChanged="ddlDay_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
</asp:Panel>
<asp:Panel ID="pnlRepeatedOn" runat="server" GroupingText="Repeated On" Visible="false">
<asp:DropDownList ID="ddlFirst" runat="server" OnSelectedIndexChanged="ddlFirst_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
<asp:DropDownList ID="ddlSunday" runat="server" OnSelectedIndexChanged="ddlSunday_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
<asp:DropDownList ID="ddlMonth" runat="server" OnSelectedIndexChanged="ddlMonth_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
</asp:Panel>
</td>
</tr>
<tr>
<td colspan="4" align="center">
<asp:Button ID="btnDisp" runat="server" OnClick="btnDisp_Click" Text="Click" Width="50%" />
</td>
</tr>
</table>
</form>
</body>
</html>
===========================================================================================

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class First : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
BindRepeatedEvery();
BindRepeatedDay();
BindRepeatedOnFirstDay();
BindRepeatedOnSunDay();
BindRepeatedOnMonthDay();
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}


}


}

private int SelectedDay { get { return Convert.ToInt16(ddlSunday.SelectedValue); } }
private int SelectedTime { get { return Convert.ToInt16(ddlFirst.SelectedValue); } }
private int SelectedMonths { get { return Convert.ToInt16(ddlMonth.SelectedValue); } }
private DateTime FromDate { get { return Convert.ToDateTime(txtFromDate.Text); } }
private DateTime ToDate { get { return Convert.ToDateTime(txtToDate.Text); } }

protected void rbRecurrence_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (rbRecurrence.SelectedValue == "0")
{
pnlRepeated.Visible = true;
pnlRepeatedOn.Visible = false;
}
else if (rbRecurrence.SelectedValue == "1")
{
pnlRepeated.Visible = false;
pnlRepeatedOn.Visible = true;
}
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

protected void calFrom_SelectionChanged(Object sender, EventArgs e)
{
txtFromDate.Text = calFrom.SelectedDate.ToString("dd-MM-yyyy");
}

protected void CalTo_SelectionChanged(Object sender, EventArgs e)
{
txtToDate.Text = CalTo.SelectedDate.ToString("dd-MM-yyyy");
}



#region Repeated

#region Repeated Dropdown

protected void ddlEvery_SelectedIndexChanged(object sender, EventArgs e)
{
try
{

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

protected void ddlDay_SelectedIndexChanged(object sender, EventArgs e)
{
try
{

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

#endregion

protected void BindRepeatedEvery()
{
ddlEvery.Items.Insert(0, new ListItem("Select-One", "0"));
ddlEvery.Items.Insert(1, new ListItem("Every", "1"));
ddlEvery.Items.Insert(2, new ListItem("Every Other", "2"));
ddlEvery.Items.Insert(3, new ListItem("Every Third", "3"));
ddlEvery.Items.Insert(4, new ListItem("Every Fourth", "4"));
ddlEvery.Items.Insert(5, new ListItem("Every Fifth", "5"));
}

protected void BindRepeatedDay()
{
ddlDay.Items.Insert(0, new ListItem("Select-One", "0"));
ddlDay.Items.Insert(1, new ListItem("Day", "1"));
ddlDay.Items.Insert(2, new ListItem("Week", "2"));
ddlDay.Items.Insert(3, new ListItem("Month", "3"));
ddlDay.Items.Insert(4, new ListItem("Year", "4"));
}

#endregion

#region Repeated On

#region Repeated on Dropdown

protected void ddlFirst_SelectedIndexChanged(object sender, EventArgs e)
{
try
{

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

protected void ddlSunday_SelectedIndexChanged(object sender, EventArgs e)
{
try
{

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

protected void ddlMonth_SelectedIndexChanged(object sender, EventArgs e)
{
try
{

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}

#endregion

protected void BindRepeatedOnFirstDay()
{
ddlFirst.Items.Insert(0, new ListItem("Select-One", "0"));
ddlFirst.Items.Insert(1, new ListItem("First", "1"));
ddlFirst.Items.Insert(2, new ListItem("Second", "2"));
ddlFirst.Items.Insert(3, new ListItem("Third", "3"));
ddlFirst.Items.Insert(4, new ListItem("Fourth", "4"));
ddlFirst.Items.Insert(5, new ListItem("Fifth", "5"));
}

protected void BindRepeatedOnSunDay()
{
//ddlSunday.Items.Insert(0, new ListItem("Select-One", "0"));
ddlSunday.Items.Insert(0, new ListItem("Sunday", "0"));
ddlSunday.Items.Insert(1, new ListItem("Monday", "1"));
ddlSunday.Items.Insert(2, new ListItem("Tuesday", "2"));
ddlSunday.Items.Insert(3, new ListItem("Wednesday", "3"));
ddlSunday.Items.Insert(4, new ListItem("Thursday", "4"));
ddlSunday.Items.Insert(5, new ListItem("Friday", "5"));
ddlSunday.Items.Insert(6, new ListItem("Saturday", "6"));
}

protected void BindRepeatedOnMonthDay()
{
ddlMonth.Items.Insert(0, new ListItem("Select-One", "0"));
ddlMonth.Items.Insert(1, new ListItem("Month", "1"));
ddlMonth.Items.Insert(2, new ListItem("3 Month", "3"));
ddlMonth.Items.Insert(3, new ListItem("4 Month", "4"));
ddlMonth.Items.Insert(4, new ListItem("6 Month", "6"));
ddlMonth.Items.Insert(5, new ListItem("Year", "12"));
}

#endregion

#region Button Click Event

protected void btnDisp_Click(object sender, EventArgs e)
{

if (rbRecurrence.SelectedValue == "0")
{
getRepeated();
}
else if (rbRecurrence.SelectedValue == "1")
{
getRepeatedon();
}
}


#endregion

private void getRepeatedon()
{
int DaysRange = (int)Math.Ceiling(ToDate.Subtract(FromDate).TotalDays / (SelectedMonths * 30));
DateTime FromDateMSD = new DateTime(FromDate.Year, FromDate.Month, 1);
List<DateTime> lstDates = new List<DateTime>();
Enumerable.Range(0, DaysRange).ToList().ForEach(s =>
{
FromDateMSD = FromDateMSD.AddMonths(s == 0 ? 0 : SelectedMonths);
DateTime NewDate = FromDateMSD.AddDays(((DayOfWeek)SelectedDay < FromDateMSD.DayOfWeek ? 7 : 0) + (DayOfWeek)SelectedDay - FromDateMSD.DayOfWeek).AddDays((SelectedTime - 1) * 7);
if (NewDate >= FromDate && NewDate <= ToDate)
lstDates.Add(NewDate);
});

dlCalDisp.DataSource = lstDates.Select(s => s.ToString("dd-MM-yyyy")).ToList();
dlCalDisp.DataBind();
}

private void getRepeated()
{
List<DateTime> lstDates = new List<DateTime>();
int SelectedEveryInterval = Convert.ToInt16(ddlEvery.SelectedValue);
int SelectedRepeatType = Convert.ToInt16(ddlDay.SelectedValue);
int ExamptionRange = 0;
if (SelectedRepeatType == 1)
ExamptionRange = SelectedEveryInterval * SelectedRepeatType;
else if (SelectedRepeatType == 2)
ExamptionRange = SelectedEveryInterval * 7;
else if (SelectedRepeatType == 3 || SelectedRepeatType == 4)
ExamptionRange = SelectedEveryInterval;

DateTime NewDate = FromDate;
lstDates.Add(NewDate);
while (NewDate <= ToDate)
{
if (SelectedRepeatType == 1 || SelectedRepeatType == 2)
NewDate = NewDate.AddDays(ExamptionRange);
else if (SelectedRepeatType == 3)
NewDate = NewDate.AddMonths(ExamptionRange);
else if (SelectedRepeatType == 4)
NewDate = NewDate.AddYears(ExamptionRange);
lstDates.Add(NewDate);
}
dlCalDisp.DataSource = lstDates.Where(l => l >= FromDate && l <= ToDate).Select(s => s.ToShortDateString()).ToList();
dlCalDisp.DataBind();

//DateTime StartingDate=calFrom.SelectedDate;
//DateTime EndingDate = CalTo.SelectedDate;
//if (StartingDate < EndingDate)
//{
// List<DateTime> lstDates = new List<DateTime>();
// DateTime tmpDate = StartingDate;
// do
// {
// lstDates.Add(tmpDate);
// tmpDate = tmpDate.AddDays(ddlDay.SelectedValue == "1" ? 1 : ddlDay.SelectedValue == "2" ? 7 : ddlDay.SelectedValue == "3" ? 30 : ddlDay.SelectedValue == "4" ? 365 : 0);
// } while (tmpDate <= EndingDate);

// dlCalDisp.DataSource = lstDates.Select(s => s.ToString("dd-MM-yyyy")).ToList();
// dlCalDisp.DataBind();
//}
}
}
 

No comments:

Post a Comment