.net Calendar控件属性问题!

flybisu 2010-12-29 09:39:05
前台页面就只有一个 <asp:Calendar ID="Calendar1" runat="server" >
</asp:Calendar>
然后在pageload的时候
if (!IsPostBack)
{
DateTime dt1 = new DateTime(2011, 1, 4);
DateTime dt2 = new DateTime(2011, 1, 31);
DateTime temp = dt1;
List<DateTime> listdate = new List<DateTime>();
listdate.Add(dt1);
for (; temp < dt2; temp.AddDays(1))
{
temp = temp.AddDays(1);
listdate.Add(temp);
}

this.Calendar1.SelectedDates.SelectRange(dt1, dt2);
for (int i = 0; i < listdate.Count; i++)
{
if (listdate[i] == Convert.ToDateTime("2011-1-8 00:00:00"))
{
this.Calendar1.SelectedDayStyle.BackColor = Color.Gray;
}
else
{
this.Calendar1.SelectedDayStyle.BackColor = Color.Red;
}

}
}


能够执行到 if (listdate[i] == Convert.ToDateTime("2011-1-8 00:00:00"))
{
this.Calendar1.SelectedDayStyle.BackColor = Color.Gray;
}
但是颜色没有变成灰色

最后显示结果全部是红色的 求解。。。。
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang456 2010-12-29
  • 打赏
  • 举报
回复
3 楼 回答的很清楚了.
this.Calendar1.SelectedDates.SelectRange(dt1, dt2);
this.Calendar1.SelectedDayStyle.BackColor即给选定日期的样式属性赋值,
this.Calendar1.SelectedDayStyle.BackColor = Color.Gray;
而你最后一次给颜色赋值赋的是Color.Red,即this.Calendar1.SelectedDayStyle.BackColor = Color.Red;
所以会全部是红色,所以从4号到31号全部是红色,
如果if (listdate[i] == Convert.ToDateTime("2011-1-31 00:00:00"))
就全部为灰色了
wangchangming 2010-12-29
  • 打赏
  • 举报
回复
怎么不能相等
rwm5366745 2010-12-29
  • 打赏
  • 举报
回复
for (int i = 0; i < listdate.Count; i++)
{
if (listdate[i] == Convert.ToDateTime("2011-1-8 00:00:00))"//能相等吗? {
this.Calendar1.SelectedDayStyle.BackColor = Color.Gray;
}
else
{
this.Calendar1.SelectedDayStyle.BackColor = Color.Red;
}

}
wangchangming 2010-12-29
  • 打赏
  • 举报
回复
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date == Convert.ToDateTime("2010-12-18 00:00:00"))
e.Cell.BackColor = Color.Gray;
}
wangchangming 2010-12-29
  • 打赏
  • 举报
回复
为什么全部变红,你自己看
this.Calendar1.SelectedDates.SelectRange(dt1, dt2);
this.Calendar1.SelectedDayStyle.BackColor即给选定日期的样式属性赋值,
this.Calendar1.SelectedDayStyle.BackColor = Color.Gray;
而你最后一次给颜色赋值赋的是Color.Red,即this.Calendar1.SelectedDayStyle.BackColor = Color.Red;
所以会全部是红色,所以从4号到31号全部是红色,
如果if (listdate[i] == Convert.ToDateTime("2011-1-31 00:00:00"))
就全部为灰色了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧