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

📄 calendar.cs

📁 1、用SQL查询器打开install目录下的dooogo.sql运行之后创建数据库dooogo。 2、然后打开web.config修改 <DbProvider type="Club.Fram
💻 CS
字号:
//Copyright (C) 2006 dooogo.com
//Author:benben
//www.aspxclub.com
using System;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Globalization;
using Club.Framework;
using Club.Framework.Components;
using Club.Framework.Configuration;
using Club.Framework.Data;
namespace Club.Common.Controls
{
	/// <summary>
	/// Calendar 的摘要说明。
	/// </summary>
	[DefaultProperty("Text"), 
	ToolboxData("<{0}:Calendar runat=server></{0}:Calendar>")]
	public class Calendar : System.Web.UI.WebControls.Calendar
	{
		private System.Threading.Thread t;
		private CultureInfo oldCulture;
		private int[] arrCurrentDays,arrPreDays,arrNextDays; //三个变量分别是当前月,前一月,和下一个月 
		private int intCurrentMonth,intPreMonth,intNextMonth; //三个整型数组存放相对月份写有blog的日期 
		protected override void OnPreRender(EventArgs e)
		{
			t=System.Threading.Thread.CurrentThread; 
			oldCulture=t.CurrentCulture; 
			CultureInfo newci=(CultureInfo)oldCulture.Clone(); 
			newci.DateTimeFormat.DayNames=new string[]{"日","一","二","三","四","五","六"}; 
			newci.DateTimeFormat.FirstDayOfWeek=DayOfWeek.Sunday; 
			t.CurrentCulture=newci;
			base.OnPreRender (e);
		}
		public void BindUrl(System.Web.UI.WebControls.DayRenderEventArgs e,string selectUrl,int registerId)
		{
			CalendarDay d = ((DayRenderEventArgs)e).Day; 
			TableCell c = ((DayRenderEventArgs)e).Cell; 

			// 初始化当前月有Blog的日期数组 
			if( intPreMonth == 0 ) 
			{ 
				intPreMonth = d.Date.Month; // 注意:日历控件初始化时我们得到的第一个月并不是当前月,而是前一个月的月份 
				intCurrentMonth = intPreMonth+1; 
				if (intCurrentMonth>12) 
					intCurrentMonth=1 ; 
				intNextMonth = intCurrentMonth+1; 
				if (intNextMonth >12) 
					intNextMonth =1; 
				arrPreDays = getArrayDay(d.Date.Year,intPreMonth,registerId); //得到前一个月有blog的日期数组 
				arrCurrentDays = getArrayDay(d.Date.Year,intCurrentMonth,registerId) ;//得到当月有blog的日期数组 
				arrNextDays = getArrayDay(d.Date.Year,intNextMonth,registerId) ;//得到下个月有blog的日期数组 
			} 

			int j=0; 
			if( d.Date.Month.Equals(intPreMonth) ) 
			{ 
				//Response.Write(d.Date.Month.Equals(intPreMonth));
				while( ! arrPreDays[j].Equals(0) ) 
				{ 
					if(d.Date.Day.Equals(arrPreDays[j])) 
					{ 
						c.Controls.Clear(); 
						c.Controls.Add(new LiteralControl("<a class=\"c_pre\" href=\""+Globals.GetWebPath(string.Format(selectUrl,d.Date.Year,d.Date.Month,d.Date.Day))+"\">"+d.Date.Day+"</a>")); 
					} 
					j++; 
				} 
			} 
			else if( d.Date.Month.Equals(intCurrentMonth) ) 
			{ 
				//Response.Write(d.Date.Month.Equals(intCurrentMonth));
				while( ! arrCurrentDays[j].Equals(0) ) 
				{ 
					if(d.Date.Day.Equals(arrCurrentDays[j])) 
					{ 
						c.Controls.Clear(); 
						c.Controls.Add(new LiteralControl("<a class=\"c_curr\" href=\""+Globals.GetWebPath(string.Format(selectUrl,d.Date.Year,d.Date.Month,d.Date.Day))+"\">"+d.Date.Day+"</a>")); 
					} 
					j++; 
				} 
			} 
			else if( d.Date.Month.Equals(intNextMonth) ) 
			{ 
				//Response.Write(d.Date.Month.Equals(intNextMonth));
				while( ! arrNextDays[j].Equals(0) ) 
				{ 
					if(d.Date.Day.Equals(arrNextDays[j])) 
					{ 
						c.Controls.Clear(); 
						c.Controls.Add(new LiteralControl("<a class=\"c_next\" href=\""+Globals.GetWebPath(string.Format(selectUrl,d.Date.Year,d.Date.Month,d.Date.Day))+"\">"+d.Date.Day+"</a>")); 
					} 
					j++; 
				} 
			} 
		}
		private int[] getArrayDay(int intYear,int intMonth,int registerId) 
		{ 
			int i=0;
			int[] intArray = new int[31]; 
			string sql="select PostDate from c_Diary where RegisterId="+registerId+" and year(PostDate)="+intYear+" and month(PostDate)="+intMonth+""; 
			DataSet ds=Globals.DbProvider.GetDataSet(sql);
			
			foreach( DataRow rs in ds.Tables[0].Rows)
			{
				if( i==0 ) 
				{ 
					intArray[i] = System.Convert.ToDateTime(rs["PostDate"].ToString()).Day;
					i++; 
				} 
				else if( System.Convert.ToDateTime(rs["PostDate"].ToString()).Day != intArray[i-1] ) 
				{ 
					intArray[i] = System.Convert.ToDateTime(rs["PostDate"].ToString()).Day; 
					i++; 
				} 

			}
   

			return intArray; 
		} 
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -