📄 mycalendar.aspx.cs
字号:
//-----------------------------------------------------------------------
//
// WebExpert.NET 1.0
//
// (c) 2003, www.AspCool.com. All rights reserved.
// ASP酷技术网 版权所有
//
// 该源码下载自:http://www.51aspx.com
// 邮箱:tim@aspcool.com
//
// 版权声明:本程序仅供学习使用,你也可以修改后在网站上使用,但使用时必
// 须保留ASP酷技术网(www.AspCool.com)的版权信息和链接。本程序随《ASP.NET
// 网站建设专家》一书赠送,未经作者同意,不得随意修改、传播。
//
// 描述:
// 此文件包含下面的类:
// MyCalendar
//
// 作者: 王保健
// 时间: 2005-01-15
//
//------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AspCool.WebExpert.XML
{
/// <summary>
/// MyCalendar 的摘要说明。
/// </summary>
public class MyCalendar : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Calendar Calendar1;
protected System.Web.UI.WebControls.Repeater Repeater1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Calendar1.DayRender += new System.Web.UI.WebControls.DayRenderEventHandler(this.Calendar1_DayRender);
this.Calendar1.SelectionChanged += new System.EventHandler(this.Calendar1_SelectionChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//-----------------------------------------------------------
//
// Calendar1_DayRender 方法
//
// Calendar1_DayRender 方法把该天的事件显示在日历上。
//
//-----------------------------------------------------------
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
// 获取该天的事件
DataSet eventsForToday = GetEventsDataSet(CalendarData(),e.Day.Date);
// 把该天的事件显示在日历上
foreach (DataRow eventRow in eventsForToday.Tables[0].Rows)
{
Label lbl = new Label();
lbl.Text = "<br><font color=blue>"+eventRow["ShortDesc"]+"</font>";
e.Cell.Controls.Add(lbl);
}
}
//-----------------------------------------------------------
//
// CalendarData 方法
//
// CalendarData 方法从XML文件中读取数据并填充到DataSet中。
//
//-----------------------------------------------------------
private DataSet CalendarData()
{
// 创建一个DataSet
DataSet ds = new DataSet();
// 把XML文件装载到DataSet中
ds.ReadXml(Server.MapPath("MyCalendar.xml"));
// 返回DataSet
return ds;
}
//-----------------------------------------------------------
//
// GetEventsDataSet 方法
//
// GetEventsDataSet 方法从包含所有事件的DataSet中找出给定日期中的事件。
// allData: 包含所有事件的DataSet
// eventsDataSet: 仅包含指定日期事件的DataSet
//-----------------------------------------------------------
private DataSet GetEventsDataSet(DataSet allData,DateTime eventDate)
{
// 找到包含给定日期的事件的行
DataRow[] eventRows = allData.Tables[0].Select("EventDate='"+eventDate.ToString("yyyy-MM-dd")+"'");
// 创建一个仅包含给定日期事件的DataSet,并克隆所有事件的DataSet的数据结构到这个DataSet
DataSet eventsDataSet = allData.Clone();
// 把包含给定日期的事件的行导入到eventsDataSet中
foreach (DataRow eventRow in eventRows)
{
eventsDataSet.Tables[0].ImportRow(eventRow);
}
// 返回给定日期的事件的DataSet
return eventsDataSet;
}
//-----------------------------------------------------------
//
// Calendar1_SelectionChanged 方法
//
// Calendar1_SelectionChanged 方法在选择日期时把该天的事件显示在日历控件下面
//
//-----------------------------------------------------------
private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
{
// 获取该天事件的DataSet
DataSet eventsForToday = GetEventsDataSet(CalendarData(),Calendar1.SelectedDate);
// 设置Repeater控件的数据源
Repeater1.DataSource = eventsForToday;
// 绑定数据
Repeater1.DataBind();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -