在ASP日历中突出显示插槽日期 [英] Highlighting slot dates in ASP calender
本文介绍了在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屋!
查看全文