protected void CalPlan_DayRender(object sender, DayRenderEventArgs e) { CalendarDay d = ((DayRenderEventArgs)e).Day; TableCell c = ((DayRenderEventArgs)e).Cell; if (intPreMonth == 0) { //日历控件初始化时取得的是第一个月并不是当前月,而是前一个月的月份 if (d.Date.Month != DateTime.Now.Month) { intPreMonth = d.Date.Month; //if (intPreMonth == 12) intPreYear = d.Date.Year; } else { intPreMonth = DateTime.Now.Month; intPreYear = DateTime.Now.Year; } intCurrentMonth = intPreMonth + 1; intCurrentYear = d.Date.Year; if (intCurrentMonth > 12) { intCurrentMonth = 1; intCurrentYear = intPreYear + 1; } //intPreMonth = d.Date.Month; //if (d.Date.Month != DateTime.Now.Month) // intCurrentMonth = intPreMonth + 1; //else // intCurrentMonth = DateTime.Now.Month; //if (intCurrentMonth > 12) //{ // intCurrentMonth = 1; //} intNextMonth = intCurrentMonth + 1; intNextYear = intCurrentYear; if (intNextMonth > 12) { intNextMonth = 1; intNextYear = intCurrentYear + 1; } //得到前一个月有plan的日期数组 //arrPreDays = getArrayDay(d.Date.Year, intPreMonth); //得到当月有plan的日期数组 BLL.C_Curriculum bll = new C_Curriculum(); arrCurrentDays = bll.GetList(intCurrentYear, intCurrentMonth, out planName); //得到下个月有plan的日期数组 //arrNextDays = getArrayDay(d.Date.Year, intNextMonth); } string strDate = d.Date.Year + "-" + d.Date.Month + "-" + d.Date.Day; string title = d.Date.Month.ToString() + "月" + d.Date.Day.ToString() + "日"; //鼠标移上时显示相应的月日 c.Controls.Clear(); //绘制前先清除 //打开新窗口传递参数. c.Controls.Add(new LiteralControl("<a href='#' onclick=javascript:OpenWin('CurriculumEdit.aspx?PlanDate=" + strDate + "'" + ",650,750,50,200) title='" + title + "'>" + d.Date.Day + "</a>")); int j = 0; int Rownum = 0; if (d.Date.Month.Equals(intPreMonth)) { c.Controls.Clear();//让上月日期不可见 //while (!arrPreDays[j].Equals(0)) //{ // if (d.Date.Day.Equals(arrPreDays[j])) // { // //放置逻辑处理 // } // j++; //} } else if (d.Date.Month.Equals(intCurrentMonth)) { title = d.Date.Month.ToString() + "月" + d.Date.Day.ToString() + "日"; //鼠标移上时显示相应的月日 //IEnumerable<int> Days = from day in arrCurrentDays // where day != 0 && d.Date.Day == day // select day; // //foreach (int dd in Days) //{ // Rownum++; // planTitle += "(" + Rownum.ToString() + ")" + planName[x] + "<br />";//如果能取到索引值可以使用下LINQ语句 像上面那样 // c.Controls.Clear(); // c.BorderWidth = 1; // c.BorderColor = System.Drawing.Color.Red; // c.BackColor = System.Drawing.Color.Pink; // c.Controls.Add(new LiteralControl("<a href='#' onclick=javascript:OpenWin('ViewPlan.aspx?PlanDate=" + strDate + "'" + ",650,750,50,200) title='" + title + "'><font color='blue' size='3'>" + d.Date.Day + "<font><br/><div style='text-align:left'><font color='blue' size='2'>" + planTitle + "<font></div></a>")); //} //=====若当月的会议次数为N,当月天数为M 则循环执行M*N次=============================// while (j < arrCurrentDays.Count) { if (d.Date.Day.Equals(arrCurrentDays[j])) //判断当前日期的第几天是否与日期数组中的某一个相等 { Rownum++; planTitle += "(" + Rownum.ToString() + ")" + planName[j] + "<br />";//标题索引与天的索引是一一对应的 c.Controls.Clear(); //当前月有会议安排的日期并设置相应的字体格式于样式 c.BorderWidth = 1; c.BorderColor = System.Drawing.Color.Red; c.BackColor = System.Drawing.Color.Pink; c.Controls.Add(new LiteralControl("<a href='#' onclick=javascript:OpenWin('CurriculumEdit.aspx?PlanDate=" + strDate + "'" + ",650,750,50,200) title='" + title + "'><font color='blue' size='3'>" + d.Date.Day + "<font><br/><div style='text-align:center'><font color='blue' size='2'>" + planTitle + "<font></div></a>")); } j++; } //每次循环后清空变量 planTitle = string.Empty; } else if (d.Date.Month.Equals(intNextMonth)) { c.Controls.Clear(); //让下月日期不可见 //while (!arrNextDays[j].Equals(0)) //{ // if (d.Date.Day.Equals(arrNextDays[j])) // { //放置逻辑处理 // } // j++; //} } }
protected void CalPlan_DayRender(object sender, DayRenderEventArgs e) { CalendarDay d = ((DayRenderEventArgs)e).Day; TableCell c = ((DayRenderEventArgs)e).Cell; if (intPreMonth == 0) { //日历控件初始化时取得的是第一个月并不是当前月,而是前一个月的月份 if (d.Date.Month != DateTime.Now.Month) { intPreMonth = d.Date.Month; //if (intPreMonth == 12) intPreYear = d.Date.Year; } else { intPreMonth = DateTime.Now.Month; intPreYear = DateTime.Now.Year; } intCurrentMonth = intPreMonth + 1; intCurrentYear = d.Date.Year; if (intCurrentMonth > 12) { intCurrentMonth = 1; intCurrentYear = intPreYear + 1; } intNextMonth = intCurrentMonth + 1; intNextYear = intCurrentYear; if (intNextMonth > 12) { intNextMonth = 1; intNextYear = intCurrentYear + 1; } //得到前一个月有plan的日期数组 //arrPreDays = getArrayDay(d.Date.Year, intPreMonth); //得到当月有plan的日期数组 BLL.C_Curriculum bll = new C_Curriculum(); arrCurrentDays = bll.GetList(intCurrentYear, intCurrentMonth, hdfOpenID.Value); //得到下个月有plan的日期数组 //arrNextDays = getArrayDay(d.Date.Year, intNextMonth); } string strDate = d.Date.Year + "-" + d.Date.Month + "-" + d.Date.Day; string title = d.Date.Month.ToString() + "月" + d.Date.Day.ToString() + "日"; //鼠标移上时显示相应的月日 c.Controls.Clear(); //绘制前先清除 //打开新窗口传递参数. c.Controls.Add(new LiteralControl("<font size = '3' > " + d.Date.Day + " <font>")); int j = 0; int Rownum = 0; if (d.Date.Month.Equals(intPreMonth)) { c.Controls.Clear();//让上月日期不可见 } else if (d.Date.Month.Equals(intCurrentMonth)) { title = d.Date.Month.ToString() + "月" + d.Date.Day.ToString() + "日";//鼠标移上时显示相应的月日 //=====若当月的会议次数为N,当月天数为M 则循环执行M*N次=============================// while (j < arrCurrentDays.Rows.Count) { if (d.Date.Day.Equals(DateTime.Parse(arrCurrentDays.Rows[j]["CurriculumDate"].ToString()).Day)) //判断当前日期的第几天是否与日期数组中的某一个相等 { Rownum++; planTitle = "(" + Rownum.ToString() + ")" + arrCurrentDays.Rows[j]["CurriculumName"] + "<br />";//标题索引与天的索引是一一对应的 if (Rownum == 1) { c.Controls.Clear(); } //当前月有会议安排的日期并设置相应的字体格式于样式 c.BorderWidth = 1; c.BorderColor = System.Drawing.Color.Red; c.BackColor = System.Drawing.Color.Pink; string txt = "课程名称:" + arrCurrentDays.Rows[j]["CurriculumName"].ToString() + "\r\n"; txt += "课程时间:" + arrCurrentDays.Rows[j]["CurriculumDate"].ToString() + "\r\n"; txt += "授课教练:" + arrCurrentDays.Rows[j]["Teacher"].ToString() + "\r\n"; txt += "备注:" + arrCurrentDays.Rows[j]["CurriculumRemark"].ToString() + "\r\n"; if (Rownum == 1) { c.Controls.Add(new LiteralControl("<a href='#' onclick=javascript:SetLab('" + arrCurrentDays.Rows[j]["ID"].ToString() + "'" + ") title='" + title + "'><font color='blue' size='3'>" + d.Date.Day + "<font><br/><div style='text-align:center'><font color='blue' size='2'>" + planTitle + "<font></div></a><input type='hidden' id='" + arrCurrentDays.Rows[j]["ID"].ToString() + "' value='" + txt + "' />")); } else { c.Controls.Add(new LiteralControl("<a href='#' onclick=javascript:SetLab('" + arrCurrentDays.Rows[j]["ID"].ToString() + "'" + ") title='" + title + "'><div style='text-align:center'><font color='blue' size='2'>" + planTitle + "<font></div></a><input type='hidden' id='" + arrCurrentDays.Rows[j]["ID"].ToString() + "' value='" + txt + "' />")); } } j++; } //每次循环后清空变量 planTitle = string.Empty; } else if (d.Date.Month.Equals(intNextMonth)) { c.Controls.Clear();//让下月日期不可见 } }