⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycalendar.aspx.cs

📁 This is not a very mean things
💻 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 + -