日期:2014-05-19  浏览次数:20448 次

..net 提供了日历控件 ....
.net   提供了日历控件,例如
<asp:calendar   id= "Calendar1 "> </asp:calendar>
就够成了网页上一个日历.
但现在我想日历上显示的数字可以点击的.
如:   2007年3月28   日,对应的连接是 <a   href=xxx.aspx?date=2007/3/28> 对应天数 </a>

像博客里的日历一样可以点击的.如何实现?


------解决方案--------------------
期待
------解决方案--------------------
SelectionChanged事件
获取当前点击的时间Calendar1.SelectedDate.Date.ToString( "yyyy/MM/dd ")
------解决方案--------------------
SelectionChanged事件
------解决方案--------------------
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { e.Cell.Text = " <a href= 'aa.aspx?date= " + e.Day.Date.ToString( "yyyy-MM-dd ") + " '> " + e.Day.DayNumberText + " </a> "; }
------解决方案--------------------
<asp:Calendar ID= "Calendar1 " runat= "server " OnDayRender= "Calendar1_DayRender "> </asp:Calendar>

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date.Date.Equals(new DateTime(2007, 4, 28)))
{
HtmlAnchor lnk = new HtmlAnchor();
lnk.HRef = "xxx.aspx?date= " + e.Day.Date.ToString( "yyyy/MM/dd ");
lnk.InnerText = e.Day.DayNumberText;
e.Cell.Controls.Clear();
e.Cell.Controls.Add(lnk);
}
}
------解决方案--------------------
你可以做自己的修饰,例如:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date.Date.Equals(new DateTime(2007, 4, 28)))
{
HtmlAnchor lnk = new HtmlAnchor();
lnk.HRef = "xxx.aspx?date= " + e.Day.Date.ToString( "yyyy/MM/dd ");
lnk.InnerText = e.Day.DayNumberText;
e.Cell.Controls.Clear();
e.Cell.Controls.Add(lnk);
lnk.Style[ "color "] = "red ";
lnk.Style[ "font-size "] = "large ";
}
}

实际上,如果是开发一个日程软件,直接在日期格子内显示任务列表等。复杂的系统是开发一些ascx提供集成好了的内容应用系统,然后根据需要装载不同的内容控件。不是像这里实例化 HtmlAnchor 控件这样想到哪里写到哪里。