关于特殊节日的显示

lj_31043705 2010-11-17 02:04:16
以下为我做个一个日历控件的代码:想要达到四个目的:1、为日历定制样式
2、控制日立的选择模式
3、设置和获取选中的日期
4、让特殊的日期有提示,同时将页面导航到有文章的页面去。

下面伪代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OracleClient;
using System.Configuration;

public partial class Default14 : 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());
}
}
protected void Page_void(object sender, EventArgs e)
{
arr = new string[13][];
for (int i = 0; i < 13; i++)
{
arr[i] = new string[32];
}
arr[1][1] = "元旦节";
arr[2][14] = "情人节";
arr[3][8] = "妇女节";
arr[4][15] = "清明节";
arr[5][1] = "劳动节";
arr[6][1] = "儿童节";
arr[7][1] = "建党节";
arr[7][15] = "鬼节";
arr[8][1] = "建军节";
arr[9][10] = "教师节";
arr[9][28] = "热烈庆祝,今天是猫仔的生日";
arr[10][1] = "国庆节";
arr[11][15] = "生日";
arr[12][24] = "平安夜";
arr[12][25] = "圣诞节";

}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedValue)
{
case "None":
Calendar1.SelectionMode = CalendarSelectionMode.None;
break;
case "DayWeekMonth":
Calendar1.SelectionMode = CalendarSelectionMode.DayWeekMonth;
break;
case "DayWeek":
Calendar1.SelectionMode = CalendarSelectionMode.DayWeek;
break;
case "Day":
Calendar1.SelectionMode = CalendarSelectionMode.Day;
break;

}
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
Label1.Text = "完整的日期是:" + Calendar1.SelectedDate.ToShortDateString();
Label2.Text = Calendar1.SelectedDate.Day.ToString() + "日";
Label3.Text = Calendar1.SelectedDate.Month.ToString() + "月";
Label4.Text = Calendar1.SelectedDate.Year.ToString() + "年";
}

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 static DataTable ds(string day)
{
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["pconn"].ConnectionString);
OracleDataAdapter sda = new OracleDataAdapter();
sda.SelectCommand = new OracleCommand("SELECT [ID], [TITLE], [ADDDATE]FROM [XIN] WHERE( [ID]= :ID)");
DataSet ds = new DataSet();
sda.Fill(ds, "xin");
return ds.Tables["xin"];
}
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.renren.com/home=" + day + "'><b>" + e.Day.Date.Day + "</b></a>"));
}
c.Controls.Add(new LiteralControl("<br>" + txt));
}
}
catch (Exception exe)
{
Response.Write(exe.ToString());
}
}
}
}

这样输入以后日期都能显示,也能跳转到想要的日期,但是标明的特殊节日一个都不能显示,请教高手指教?
就是如开头的这种日期 : arr[1][1] = "元旦节";......

还有为什么能够控制月份在12个月,日期每31天就反复循环呢?问题应该是出在这里:
protected void Page_void(object sender, EventArgs e)
{
arr = new string[13][];
for (int i = 0; i < 13; i++)
{
arr[i] = new string[32];
}

请教高手指教?


...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lj_31043705 2010-11-19
  • 打赏
  • 举报
回复
最后的问题弄明白了,就是不明白为什么不显示节日。
x_yanx 2010-11-17
  • 打赏
  • 举报
回复
看不懂,好长
Teng_s2000 2010-11-17
  • 打赏
  • 举报
回复
研究万年历的js去吧

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧