We help IT Professionals succeed at work.
Get Started

c# asp.net calendar object-change the highlighted date on click of an asp button

CharlieDev
CharlieDev asked
on
2,883 Views
Last Modified: 2013-12-17
Hi,
I am trying to get the date on a dot net calendar object to change when a button on the same aspx page is clicked. Currently the date can be selected by clicking on the actual calendar but i need to have control from  both the calendar and also from a drop down box containing dates and a submit date button.

I cant find what command i need to tell the calendar to change its highlighted date when the submit date button is pressed.

Does anyone know the command i need and where to put it in my code.


aspx file

<div class="innerContentContainer">
                    <div class="innerContentContainerLeftCal">
                    <form id="form1" runat="server">
                    <asp:Calendar id="Calendar1"
                     OnSelectionChanged="Date_Selected"
                     width="429px"
                     height="280px"
                     Font-Name="Verdana"
                     Font-Size="16px"
                     padding-left="5px"
                     NextPrevFormat="ShortMonth"
                     border-style="none"
                     text-decoration="none"
                     runat="server">
                   <TodayDayStyle Font-Bold="True" BackColor="#336633"/>
                   <DayHeaderStyle Font-Bold="True"/>
                   <OtherMonthDayStyle ForeColor="gray"/>
                   <TitleStyle BackColor="#ffffff"
                               ForeColor="#000"
                               Font-Bold="True"/>

                   <SelectedDayStyle BackColor="#ee3f09"
                                     Font-Bold="True"
                                     />
                   <NextPrevStyle ForeColor="#000"
                                  Font-Size="12px"/>
                   <SelectorStyle BackColor="#336633"
                                  ForeColor="navy"
                                  Font-Size="9px"/>
                </asp:Calendar>
    <asp:Label ID="Label1" runat="server" ></asp:Label>
                    </div>
                    <div class="innerContentContainerRightTall">
                        <div class="fixturesTitle">
                            <h1 title="Fixtures">
                                <img src="../images/fixtures_text.gif" alt="Fixtures Diary" /></h1>
                        </div>
                        <div class="innerContentContainerRightFix">
                            <div class="fixturesHeader">
                               
                                <div class="fourColumnContainerFixtures">
                                    <div class="colu1">
                                        <asp:Button ID="select_month" OnClick="SelectMonth" runat="server" Text="Please select date" Width="125px" />
                                    </div>
                                    <div class="colu2">
                                        <asp:DropDownList ID="dateDrop" runat="server" DataValueField="" Width="55px">
                                            <asp:ListItem Value="" Text="Date" Selected="True" />
                                            <asp:ListItem Value="01" Text="01"  />
                                            <asp:ListItem Value="02" Text="02"  />
                                            <asp:ListItem Value="03" Text="03" />
                                            <asp:ListItem Value="04" Text="04"  />
                                            <asp:ListItem Value="05" Text="05"  />
                                            <asp:ListItem Value="06" Text="06" />
                                            <asp:ListItem Value="07" Text="07"  />
                                            <asp:ListItem Value="08" Text="08" />
                                            <asp:ListItem Value="09" Text="09" />
                                            <asp:ListItem Value="10" Text="10" />
                                            <asp:ListItem Value="11" Text="11" />
                                            <asp:ListItem Value="12" Text="12"/>
                                            <asp:ListItem Value="13" Text="13"  />
                                            <asp:ListItem Value="14" Text="14"  />
                                            <asp:ListItem Value="15" Text="15" />
                                            <asp:ListItem Value="16" Text="16"  />
                                            <asp:ListItem Value="17" Text="17"  />
                                            <asp:ListItem Value="18" Text="18" />
                                            <asp:ListItem Value="19" Text="19"  />
                                            <asp:ListItem Value="20" Text="20" />
                                            <asp:ListItem Value="21" Text="21" />
                                            <asp:ListItem Value="22" Text="22" />
                                            <asp:ListItem Value="23" Text="23" />
                                            <asp:ListItem Value="24" Text="24"/>
                                            <asp:ListItem Value="25" Text="25"  />
                                            <asp:ListItem Value="26" Text="26"  />
                                            <asp:ListItem Value="27" Text="27" />
                                            <asp:ListItem Value="28" Text="28"  />
                                            <asp:ListItem Value="29" Text="29"  />
                                            <asp:ListItem Value="30" Text="30" />
                                            <asp:ListItem Value="31" Text="31"  />
                                        </asp:DropDownList>
                                    </div>
                                    <div class="colu3">
                                        <asp:DropDownList ID="monthdrop" runat="server" DataValueField="" Width="95px">
                                            <asp:ListItem Value="" Text="Month" Selected="True" />
                                            <asp:ListItem Value="January" Text="January"  />
                                            <asp:ListItem Value="February" Text="February"  />
                                            <asp:ListItem Value="March" Text="March" />
                                            <asp:ListItem Value="April" Text="April"  />
                                            <asp:ListItem Value="May" Text="May"  />
                                            <asp:ListItem Value="June" Text="June" />
                                            <asp:ListItem Value="July" Text="July"  />
                                            <asp:ListItem Value="August" Text="August" />
                                            <asp:ListItem Value="September" Text="September" />
                                            <asp:ListItem Value="October" Text="October" />
                                            <asp:ListItem Value="November" Text="November" />
                                            <asp:ListItem Value="December" Text="December"/>
                                        </asp:DropDownList>
                                    </div>
                                    <div class="colu4">
                                         <asp:DropDownList ID="year" runat="server" DataValueField="" Width="55px">
                                         </asp:DropDownList>
                                    </div>  
                                   <div class="colu5">
                                         <a href="../index.html">Print all month fixtures</a>
                                    </div>  
                                   
                                </div>
                               <div class="columnC">
                                 <div id="hidden" runat="server">
                                   <p>No data available yet</p>
                                 </div>
                               </div>
                            </div>
                                        <div class="eventBox">
                                      <asp:Repeater ID="RepeaterDay" runat="server">
                                       <ItemTemplate>
                                          <div class="DateDayTitle"><div class="dayTitle"><%# DataBinder.Eval(Container.DataItem,"Day") %></div><div class="dateTitle"><%# DataBinder.Eval(Container.DataItem,"Date") %></div><div class="monthTitle"><%# DataBinder.Eval(Container.DataItem,"Month") %></div></div>
                                           <div class="heading">
                                             <div class="amTeeTitle">AM Tee:</div>
                                             <asp:Repeater ID="RepeaterAM" runat="server">
                                               <ItemTemplate>
                                                <div class="columnHeight"><div class="C2olumn"><span class="empty"></span><span class="emphasis"><%# DataBinder.Eval(Container.DataItem,"Time") %></span><div class="p"><%# DataBinder.Eval(Container.DataItem,"Event") %></div></div></div>
                                               </ItemTemplate>
                                             </asp:Repeater>
                                          </div>
                                          <div class="heading">
                                             <div class="pmTeeTitle">PM Tee:</div>
                                             <asp:Repeater ID="RepeaterPM" runat="server">
                                               <ItemTemplate>
                                                <div class="columnHeight"><div class="C2olumn"><span class="empty"></span><span class="emphasis"><%# DataBinder.Eval(Container.DataItem,"Time") %></span><div class="p"><%# DataBinder.Eval(Container.DataItem,"Event") %></div></div></div>
                                               </ItemTemplate>
                                             </asp:Repeater>
                                          </div>
                                          <div class="heading">
                                             <div class="clubhouseTitle">Clubhouse:</div>
                                             <asp:Repeater ID="RepeaterCL" runat="server">
                                               <ItemTemplate>
                                                <div class="columnHeight"><div class="C2olumn"><span class="empty"></span><span class="emphasis"><%# DataBinder.Eval(Container.DataItem,"Time") %></span><div class="p"><%# DataBinder.Eval(Container.DataItem,"Event") %></div></div></div>
                                               </ItemTemplate>
                                             </asp:Repeater>
                                          </div>
                                          </ItemTemplate>
                                       </asp:Repeater>
                                    </div>
                                   
                               
                           
                            </form>
                        </div>
                       
                    </div>
c# file
 
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
 
public partial class calendar_fixtcalendar : System.Web.UI.Page
{
    public static SqlConnection conn = null;
 
    public static void OpenConnection()
    {
        CloseConnection();
        if (conn == null)
        {
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["std"].ConnectionString);
        }
 
        conn.Open();
    }
 
    public static void CloseConnection()
    {
        if (conn != null)
            conn.Close();
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
        hidden.Visible = false;
 
        if (!IsPostBack)
        {
            OpenConnection();
 
            SqlCommand command = new SqlCommand("exec usp_GetValidMonths", conn);
 
            SqlDataReader reader = command.ExecuteReader();
 
            ArrayList yearList = new ArrayList();
 
            while (reader.Read())
            {
                string[] monthYear = SplitMonthYear(reader["month"].ToString());
 
                if (!yearList.Contains(monthYear[1]))
                    yearList.Add(monthYear[1]);
            }
 
            yearList.Sort();
 
            for (int i = 0; i < yearList.Count; i++)
            {
                ListItem item1 = new ListItem();
                item1.Text = (string)"20" + yearList[i];
                item1.Value = (string)yearList[i];
                year.Items.Add(item1);
            }
 
            CloseConnection();
        }
 
        if (!IsPostBack)
        {
            DateTimeFormatInfo dfi = new DateTimeFormatInfo();
            dfi.MonthDayPattern = "MMMM yy";
 
            DateTime now = DateTime.Now;
 
            string dateID = now.ToString("m", dfi);
 
            DisplayMonth(dateID);
 
            string strMonth = dateID.Split(' ')[0];
            string strYear = dateID.Split(' ')[1];
 
            monthdrop.Text = strMonth;
            year.Text = strYear;
        }
 
 
    }
 
    public void SelectMonth(object sender, EventArgs e)
    {
        hidden.Visible = false;
        string monthID = monthdrop.SelectedValue + " " + year.SelectedValue;
        object result = null;
        string dateSelect = dateDrop.SelectedValue;
 
        OpenConnection();
 
        SqlCommand commandviewfixts = new SqlCommand("exec usp_GetMonthFixtures @monthID, @dateSelect", conn);
 
        commandviewfixts.Parameters.Add("monthID", SqlDbType.NVarChar);
        commandviewfixts.Parameters["monthID"].Value = monthID;
        commandviewfixts.Parameters.Add("dateSelect", SqlDbType.NVarChar);
        commandviewfixts.Parameters["dateSelect"].Value = dateSelect;
 
        
        result = commandviewfixts.ExecuteScalar();
        if (result == null)
        {
            hidden.Visible = true;
 
        }
 
        CloseConnection();
 
        OpenConnection();
 
 
        SqlCommand mySqlSelect = new SqlCommand("exec usp_GetMonthAllFixtures @MonthID , @dateSelect", conn);
 
        mySqlSelect.Parameters.Add("MonthID", SqlDbType.NVarChar);
        mySqlSelect.Parameters["MonthID"].Value = monthID;
        mySqlSelect.Parameters.Add("dateSelect", SqlDbType.NVarChar);
        mySqlSelect.Parameters["dateSelect"].Value = dateSelect;
 
 
        mySqlSelect.CommandType = CommandType.Text;
 
        SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlSelect); DataSet DayDataSet = new DataSet();
 
        mySqlAdapter.Fill(DayDataSet);
 
        RepeaterDay.DataSource = DayDataSet;
 
        RepeaterDay.DataBind();
 
        int k = 0;
 
        foreach (RepeaterItem repeaterItem in RepeaterDay.Items)
        {
            OpenConnection();
 
            string date = DayDataSet.Tables[0].Rows[k]["Date"].ToString();
 
 
            {
            SqlCommand mySqlSelectAM = new SqlCommand("exec usp_GetMonthAMFixtures @dateSelect, @MonthID", conn);
 
                mySqlSelectAM.Parameters.Add("dateSelect", SqlDbType.NVarChar);
                mySqlSelectAM.Parameters["dateSelect"].Value = dateSelect;
                mySqlSelectAM.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectAM.Parameters["MonthID"].Value = monthID;
 
                mySqlSelectAM.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterAM = new SqlDataAdapter(mySqlSelectAM);
 
                DataSet DayDataSetAM = new DataSet();
 
                mySqlAdapterAM.Fill(DayDataSetAM);
 
                if (DayDataSetAM.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetAM.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterAM"))).DataSource = DayDataSetAM;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterAM"))).DataBind();
            }
            {
                SqlCommand mySqlSelectPM = new SqlCommand("exec usp_GetMonthPMFixtures @dateSelect, @MonthID", conn);
 
                mySqlSelectPM.Parameters.Add("dateSelect", SqlDbType.NVarChar);
                mySqlSelectPM.Parameters["dateSelect"].Value = dateSelect;
                mySqlSelectPM.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectPM.Parameters["MonthID"].Value = monthID;
 
                mySqlSelectPM.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterPM = new SqlDataAdapter(mySqlSelectPM);
 
                DataSet DayDataSetPM = new DataSet();
 
                mySqlAdapterPM.Fill(DayDataSetPM);
 
                if (DayDataSetPM.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetPM.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterPM"))).DataSource = DayDataSetPM;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterPM"))).DataBind();
 
            }
            {
                SqlCommand mySqlSelectCL = new SqlCommand("exec usp_GetMonthClubFixtures @dateSelect, @MonthID", conn);
 
                mySqlSelectCL.Parameters.Add("dateSelect", SqlDbType.NVarChar);
                mySqlSelectCL.Parameters["dateSelect"].Value = dateSelect;
                mySqlSelectCL.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectCL.Parameters["MonthID"].Value = @monthID;
 
                mySqlSelectCL.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterCL = new SqlDataAdapter(mySqlSelectCL);
 
                DataSet DayDataSetCL = new DataSet();
 
                mySqlAdapterCL.Fill(DayDataSetCL);
 
                if (DayDataSetCL.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetCL.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterCL"))).DataSource = DayDataSetCL;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterCL"))).DataBind();
            }
 
            k++;
 
 
 
        }
        CloseConnection();
    }
       
    
    public void DisplayMonth(string dateID)
    {
        string dateSelected = dateDrop.SelectedValue;
        OpenConnection();
 
        SqlCommand mySqlSelect = new SqlCommand("exec usp_GetMonthAllFixtures @MonthID ,@dateSelect", conn);
 
        mySqlSelect.Parameters.Add("MonthID", SqlDbType.NVarChar);
        mySqlSelect.Parameters["MonthID"].Value = dateID;
        mySqlSelect.Parameters.Add("dateSelect", SqlDbType.NVarChar);
        mySqlSelect.Parameters["dateSelect"].Value = dateSelected;
 
        mySqlSelect.CommandType = CommandType.Text;
 
        SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlSelect); DataSet DayDataSet = new DataSet();
 
        mySqlAdapter.Fill(DayDataSet);
 
        RepeaterDay.DataSource = DayDataSet;
 
        RepeaterDay.DataBind();
 
        int k = 0;
 
        foreach (RepeaterItem repeaterItem in RepeaterDay.Items)
        {
            OpenConnection();
 
            string date = DayDataSet.Tables[0].Rows[k]["Date"].ToString();
 
 
            {
                SqlCommand mySqlSelectAM = new SqlCommand("exec usp_GetMonthAMFixtures @Date, @MonthID", conn);
 
                mySqlSelectAM.Parameters.Add("Date", SqlDbType.NVarChar);
                mySqlSelectAM.Parameters["Date"].Value = date;
                mySqlSelectAM.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectAM.Parameters["MonthID"].Value = dateID;
 
                mySqlSelectAM.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterAM = new SqlDataAdapter(mySqlSelectAM);
 
                DataSet DayDataSetAM = new DataSet();
 
                mySqlAdapterAM.Fill(DayDataSetAM);
 
                if (DayDataSetAM.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetAM.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterAM"))).DataSource = DayDataSetAM;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterAM"))).DataBind();
 
 
            }
            {
                SqlCommand mySqlSelectPM = new SqlCommand("exec usp_GetMonthPMFixtures @Date, @MonthID", conn);
 
                mySqlSelectPM.Parameters.Add("Date", SqlDbType.NVarChar);
                mySqlSelectPM.Parameters["Date"].Value = date;
                mySqlSelectPM.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectPM.Parameters["MonthID"].Value = dateID;
 
                mySqlSelectPM.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterPM = new SqlDataAdapter(mySqlSelectPM);
 
                DataSet DayDataSetPM = new DataSet();
 
                mySqlAdapterPM.Fill(DayDataSetPM);
 
                if (DayDataSetPM.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetPM.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterPM"))).DataSource = DayDataSetPM;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterPM"))).DataBind();
 
            }
            {
                SqlCommand mySqlSelectCL = new SqlCommand("exec usp_GetMonthClubFixtures @Date, @MonthID", conn);
 
                mySqlSelectCL.Parameters.Add("Date", SqlDbType.NVarChar);
                mySqlSelectCL.Parameters["Date"].Value = date;
                mySqlSelectCL.Parameters.Add("MonthID", SqlDbType.NVarChar);
                mySqlSelectCL.Parameters["MonthID"].Value = dateID;
 
                mySqlSelectCL.CommandType = CommandType.Text;
 
                SqlDataAdapter mySqlAdapterCL = new SqlDataAdapter(mySqlSelectCL);
 
                DataSet DayDataSetCL = new DataSet();
 
                mySqlAdapterCL.Fill(DayDataSetCL);
 
                if (DayDataSetCL.Tables[0].Rows.Count <= 0)
                {
                    DayDataSetCL.Tables[0].Rows.Add(new object[] { "No events", "" });
                }
 
                ((Repeater)(repeaterItem.FindControl("RepeaterCL"))).DataSource = DayDataSetCL;
 
                ((Repeater)(repeaterItem.FindControl("RepeaterCL"))).DataBind();
            }
 
            k++;
 
 
 
        }
        CloseConnection();
    }
 
    private string[] SplitMonthYear(string StrDate)
    {
        string[] split = StrDate.Split(' ');
 
        return split;
    }
 
 
    protected void Date_Selected(object sender, EventArgs e)
    {
        DateTimeFormatInfo dfi = new DateTimeFormatInfo();
        dfi.MonthDayPattern = "MMMM yy";
        DateTimeFormatInfo dtf = new DateTimeFormatInfo();
        dtf.MonthDayPattern = "dd";
       
 
        DateTime CalendarSelectedYear = Calendar1.SelectedDate;
        DateTime CalendarSelectedDate = Calendar1.SelectedDate;
 
        string convertedSelectedYear = CalendarSelectedYear.ToString("m", dfi);
        Response.Write(convertedSelectedYear);
        string convertedSelectedDate = CalendarSelectedDate.ToString("m", dtf);
        Response.Write(convertedSelectedDate);
    }
 
}

Open in new window

cal.jpg
Comment
Watch Question
Commented:
This problem has been solved!
Unlock 1 Answer and 20 Comments.
See Answer
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE