Tuesday, 11 March 2014

calendar with Datalist

Default2.aspx

<body>
    <form id="form1" runat="server">
    <div>
        <table border="0" cellpadding="2" cellspacing="2">
            <tr>
                <td align="left" style="width: 200px; border-right: solid 2px #000000; border-bottom: solid 2px #000000;">
                    <table border="0" cellpadding="2" cellspacing="2">
                        <tr>
                            <td align="left">
                                Start Date :<br />
                                <asp:Calendar runat="server" ID="clndStart" OnSelectionChanged="clndStart_SelectionChanged">
                                </asp:Calendar>
                                <br />
                                <asp:TextBox runat="server" ID="txtStartDate" Enabled="false"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td align="left">
                                End Date :<br />
                                <asp:Calendar runat="server" ID="clndEnd" OnSelectionChanged="clndEnd_SelectionChanged">
                                </asp:Calendar>
                                <br />
                                <asp:TextBox runat="server" ID="txtEndDate" Enabled="false"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td align="left">
                                Recurrence :<br />
                                <asp:RadioButton ID="rbtnRepeated" runat="server" GroupName="repeat" Checked="true"
                                    Text="Repeated" /><br />
                                <asp:DropDownList runat="server" ID="ddlRepeatedFirst">
                                    <asp:ListItem Selected="True" Text="Every" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="Every Other" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Every Third" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Every Fourth" Value="4"></asp:ListItem>
                                </asp:DropDownList>
                                <asp:DropDownList runat="server" ID="ddlRepeatedSecond">
                                    <asp:ListItem Selected="True" Text="Day" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="Week" Value="7"></asp:ListItem>
                                    <asp:ListItem Text="Month" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Year" Value="4"></asp:ListItem>
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td align="left">
                                <asp:RadioButton ID="rbtnRepeatedOn" runat="server" GroupName="repeat" Text="Repeated On" /><br />
                                <asp:DropDownList runat="server" ID="ddlRepeatedOnFirst">
                                    <asp:ListItem Selected="True" Text="First" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="Second" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Third" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Fourth" Value="4"></asp:ListItem>
                                </asp:DropDownList>
                                <asp:DropDownList runat="server" ID="ddlRepeatedOnSecond">
                                    <asp:ListItem Text="Sunday" Value="0"></asp:ListItem>
                                    <asp:ListItem Text="Monday" Selected="True" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="Tuesday" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Wednesday" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Thursday" Value="4"></asp:ListItem>
                                    <asp:ListItem Text="Friday" Value="5"></asp:ListItem>
                                    <asp:ListItem Text="Saturday" Value="6"></asp:ListItem>
                                </asp:DropDownList>
                                Of the
                                <asp:DropDownList runat="server" ID="ddlRepeatedOnThird">
                                    <asp:ListItem Text="Month" Selected="True" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="3 Month" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="4 Month" Value="4"></asp:ListItem>
                                    <asp:ListItem Text="6 Month" Value="6"></asp:ListItem>
                                    <asp:ListItem Text="Year" Value="12"></asp:ListItem>
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="3" align="center">
                                <asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" />
                            </td>
                        </tr>
                    </table>
                </td>
                <td align="left" style="width: 800px; border-bottom: solid 2px #000000;">
                    <asp:DataList runat="server" ID="DLResult" RepeatColumns="6" RepeatDirection="Horizontal">
                        <ItemTemplate>
                            <table border="0">
                                <tr>
                                    <td>
                                        <asp:Label runat="server" ID="lblMonth" Text='<%# Eval("Month") %>'>
                                        </asp:Label>
                                        <asp:Calendar runat="server" ID="cldnData"></asp:Calendar>
                                    </td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:DataList>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>

Defult2.aspx.cs

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

public partial class Default2 : System.Web.UI.Page
{
    List<DateTime> lstResult;
    protected void Page_Load(object sender, EventArgs e)
    {

    }


    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        GetResult();
    }

    private void GetResult()
    {
        DateTime SDate = clndStart.SelectedDate;
        DateTime EDate = clndEnd.SelectedDate;
        TimeSpan DateDiff = EDate.Subtract(SDate);
        int Month;
        if (EDate.Year == SDate.Year)
        {
            Month = EDate.Month - SDate.Month;
        }
        else
        {
            Month = ((EDate.Year - SDate.Year) * 12) + EDate.Month - SDate.Month;
        }

        lstResult = new List<DateTime>();

        DataTable dt = new DataTable();
        dt.Columns.Add("Id", System.Type.GetType("System.String"));
        dt.Columns.Add("Month", System.Type.GetType("System.String"));
        dt.Columns.Add("Year", System.Type.GetType("System.String"));

        for (int i = 0; i <= Month; i++)
        {
            DataRow dr = dt.NewRow();
            dr["Id"] = dt.Rows.Count + 1;
            dr["Month"] = SDate.AddMonths(i).ToString("MMM");
            dr["Year"] = SDate.ToString("yyyy");
            dt.Rows.Add(dr);
        }

        if (rbtnRepeated.Checked)
        {
            if (ddlRepeatedSecond.SelectedValue == "1" || ddlRepeatedSecond.SelectedValue == "7")
            {
                int Increment = Convert.ToInt32(ddlRepeatedFirst.SelectedValue);

                Increment = Increment * Convert.ToInt32(ddlRepeatedSecond.SelectedValue);
                for (int i = 0; i <= DateDiff.Days; i += Increment)
                {
                    lstResult.Add(SDate.AddDays(i));
                }
            }
            else
            {
                if (ddlRepeatedSecond.SelectedValue == "3")
                {
                    for (int i = 0; i <= Month; i = i + Convert.ToInt32(ddlRepeatedFirst.SelectedValue))
                    {
                        if (SDate.AddMonths(i) > EDate)
                            break;
                        lstResult.Add(SDate.AddMonths(i));
                    }
                }
                else
                {

                }
            }

        }
        else if (rbtnRepeatedOn.Checked)
        {

            for (int i = 0; i <= Month; i++)
            {
                SDate = i > 0 ? SDate.AddMonths(Convert.ToInt32(ddlRepeatedOnThird.SelectedValue)) : SDate.AddMonths(0);
                if (SDate > EDate)
                    goto exit;
                for (int j = 0; j < DateTime.DaysInMonth(SDate.Year, SDate.Month); j++)
                {

                    if (SDate.Day > (7 * (Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue) - 1)) && SDate.Day <= (7 * Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue)) && Convert.ToInt32(SDate.DayOfWeek) == Convert.ToInt32(ddlRepeatedOnSecond.SelectedValue))
                    {
                        lstResult.Add(SDate);
                        SDate = SDate.AddDays(-j);
                        break;
                    }
                    else
                        SDate = SDate.AddDays(1);

                    if (SDate >= EDate)
                        goto exit;
                }
            }
        exit: ;
        }

        DLResult.DataSource = dt;
        DLResult.DataBind();
    }

    protected void clndStart_SelectionChanged(object sender, EventArgs e)
    {
        txtStartDate.Text = clndStart.SelectedDate.ToString();
    }
    protected void clndEnd_SelectionChanged(object sender, EventArgs e)
    {
        txtEndDate.Text = clndEnd.SelectedDate.ToString();
    }
}

No comments:

Post a Comment