在ASP日历中突出显示插槽日期 [英] Highlighting slot dates in ASP calender

查看:61
本文介绍了在ASP日历中突出显示插槽日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个预约系统的软件我想帮助ASP日历我希望在日历中的可用插槽中加亮颜色(绿色)以及不可用和休息的红色是不可用的。每天有37个插槽。



我尝试过:



I am building a software which is Appointment System I Want to help for ASP Calender I want to heighlight Color (Green) in Available slot in Calender and also Red which are Not Available and Rest are Dissable. Every Day has a 37 Slots.

What I have tried:

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindDocSpecially();
                sch_date.Attributes["min"] = DateTime.Now.ToString("yyyy-MM-dd");
            }
        }


 public void BindData()
        {
            DataTable dt = new DataTable();
            try
            {
               Ou1.OpenCon();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                Ou1.CloseCon();
                Ou1.ExecuteSP("SP_datecolor", cmd);
                SqlDataReader rdr = Ou1.GetReaderP(cmd);
               
                
                // Defines Array List
                ArrayList aList = new ArrayList();
                while (rdr.Read() == true)
                {
                    date_avl = rdr["app_date"].ToString();
                    count++;
                   // myCal.SelectedDates.Add((DateTime)rdr.GetSqlDateTime(0));
                }
                if (date_avl != "")
                { 
                
                
                
                }
                //myConnection.Close();

                // Clear the ArrayList
                aList.Clear();

            }
            catch (Exception ex)
            {
                throw ex;

            }

        }


        protected void sch_date_DayRender(object sender, DayRenderEventArgs e)
        {
            DateTime pastday = e.Day.Date;
            DateTime date = DateTime.Now;
            int year = date.Year;
            int month = date.Month;
            int day = date.Day;
            DateTime today = new DateTime(year, month, day);
            if (pastday.CompareTo(today) < 0)
            {
                e.Cell.BackColor = System.Drawing.Color.Gray;
                e.Day.IsSelectable = false;
            }

        }


        public void sch_date_SelectionChanged1(object sender, EventArgs e)
        {
         string userInput =   Convert.ToString(sch_date.SelectedDate = DateTime.Today);
         DateTime dateTime;
         if (DateTime.TryParse(userInput, out dateTime))
         {
             lblweek.Text = dateTime.DayOfWeek.ToString();
         } checkdays_doctor();
         if ((ddlSortBy.SelectedValue == "0") && (doc_type.SelectedValue == ""))
         {
             Page.ClientScript.RegisterStartupScript(Page.GetType(), "Msg", "alert('Please Select Doctors!!');", true);

         }

         if ((days_dtweek.Value != lblweek.Text) && (days_dtweek.Value != "Alltime"))
         {
             Page.ClientScript.RegisterStartupScript(Page.GetType(), "Msg", "alert('Doctor not Available in this day Please Select Correct Day');", true);

         }

            //Label3.Text = myCal.SelectedDate.ToLongDateString(); 
            //myCal.SelectedDayStyle.BackColor = System.Drawing.Color.DarkKhaki;
            //selectedDate = myCal.SelectedDate.ToLongDateString();



            BindData();
            
        }

       
       
    }
}

推荐答案

从db中选择你的可用插槽日期并存储在数组中(例如:arr.add [youdate])

int cnt = arr.Count;

for (int h = 0; h< cnt; h ++)

{

DateTime date = DateTime.ParseExact(arr [h] .ToString(),M / d / yyyy,null);

Calendar1.SelectedDates.Add(date);

Calendar1.SelectedDayStyle.BackColor = Color.Green;

}



相同的程序没有可用的插槽。



你可以在page_load中写这个,这样你就可以在页面加载时查看日历中突出显示的日期
select your available slot date from db and store in array (ex: arr.add[youdate])
int cnt = arr.Count;
for (int h = 0; h < cnt; h++)
{
DateTime date = DateTime.ParseExact(arr[h].ToString(), "M/d/yyyy", null);
Calendar1.SelectedDates.Add(date);
Calendar1.SelectedDayStyle.BackColor = Color.Green;
}

same procedure for not available slots.

You can write this in your page_load so you can see highlighted dates in calendar while the page loads


这篇关于在ASP日历中突出显示插槽日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆