35Canlender--[Asp.Net]

rili.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Web.Security ;
using System.Data;
using System.Configuration;


namespace WebApplication1
{
public partial class rili : System.Web.UI.Page
{
string[][] arr;//声明一个数组来存储一年中的一个节日
protected void Page_Init(object sender, EventArgs e)
{

//通过循环填充年月日下拉菜单
for (int y = 1980; y < 2050; y++)
{
ye.Items.Add(y.ToString());
}
for (int m = 1; m < 13; m++)
{
mo.Items.Add(m.ToString());
}
for (int d = 1; d < 32; d++)
{
da.Items.Add(d.ToString());
}
arr=new string [4][];//数组
for (int i = 0; i < 4; i++)
{
arr[i] = new string[32];
}

//存储数组的节日
arr[1][1] = "元旦节";
arr[2][4] = "情人节";
arr[3][8] = "妇女节";
}

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
Label1.Text = Calendar1.SelectedDate.ToShortDateString();//选则完整日期
Label2.Text = Calendar1.SelectedDate.Month.ToString() + "月";//月份
Label3.Text = Calendar1.SelectedDate.Year.ToString() + "年";//年
}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//选则下拉列表中的值,选中None,日,周,月
switch (DropDownList1.SelectedValue)
{
case "None":
Calendar1.SelectionMode = CalendarSelectionMode.None;
break;
case "Day":
Calendar1.SelectionMode = CalendarSelectionMode.Day;
break;
case "DayWeek":
Calendar1.SelectionMode = CalendarSelectionMode.DayWeek;
break;
case "DayWeekMonth":
Calendar1.SelectionMode = CalendarSelectionMode.DayWeekMonth;
break;

}
}
protected static DataTable ds(string day)
{
//为日期要绑定的数据库做个查询
SqlConnection con=new SqlConnection(ConfigurationManager.ConnectionStrings ["pconn"].ConnectionString );
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("SELECT [title_id], [pubdate], [title] FROM [titles] WHERE ([pubdate] = '" + day + "')", con);
DataSet ds=new DataSet ();
sda.Fill (ds,"titles");
return ds.Tables ["titles"];

}

protected void Button1_Click(object sender, EventArgs e)
{ //获取具体时间
string y = ye.SelectedValue.ToString();
string m = mo.SelectedValue.ToString();
string d = da.SelectedValue.ToString();//转换日历的日期
Calendar1.VisibleDate = Convert.ToDateTime(y + "-" + m + "-" + d);
}

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
CalendarDay d = e.Day;//设置当前日期
TableCell c = e.Cell;//设置当前表格

//如果是其他月份就清除本来的节日
if (d.IsOtherMonth)
{
c.Controls.Clear();
}
else
{
try
{//得到完整的月,日
string txt = arr[d.Date.Month][d.Date.Day];
if (txt != string.Empty)//看下面是否有东西
{//获取当前的日期并转化为短日期格式
string day = e.Day.Date.ToShortDateString();
//循环数据视图中的每一行
foreach (DataRow dr in ds
(day).Rows)
{
c.Controls.Clear();
c.Controls.Add (new LiteralControl("<a href='http://www.baidu.com"+ day+ "'><b>"+e.Day.Date.Day+"</b></a>"));
}
//如果有的话吗,就在数字日期后面换行显示
c.Controls.Add(new LiteralControl("<br>" + txt));
}
}
catch(Exception exe)
{
Response.Write (exe.ToString ());
}
}

}
}
}

效果图:

1.通过选择Droplist来选择日期的类型

2.获取日历中选择的日期

3.给日历设置日期

4.遗留问题:绑定数据库,添加数组,显示特殊节日,这个没有做好。

原文地址:https://www.cnblogs.com/wangmei/p/4493241.html