日曆控制元件(Calendar)
日曆控制元件(Calendar)
為日曆定製樣式,外觀
控制日曆的選擇模式
設定和獲取選中的日期
讓特殊的日期有提示,同時我們模仿部落格園日曆,將頁面導航到有文章的日期去
Calendar事件DayRender在呈現日時激發
protected void Page_Init(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] = "婦女節";
//填充年、月、日下拉選單
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++)
{//有個問題,2月沒有31號!!需要改進
da.Items.Add(d.ToString() );
}
}
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) //using System.Data.SqlClient;
{
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 + "' )");
DataSet ds = new DataSet();
sda.Fill(ds, "titles");
return ds.Tables["titles"];
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)//注意事件名稱是 DayRender
{
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 ListeralControl("" + day + "'>" + e.Day.Date.Day + "" ) );
}
c.Controls.Add(new LiteralControl("
" + txt) ); //如果有的話,就在日期數字後面換行顯示出來
}
}
catch (Exception exe)
{
Response.Write(exe.ToString() );
}
}
}
{//只執行一次
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] = "婦女節";
//填充年、月、日下拉選單
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++)
{//有個問題,2月沒有31號!!需要改進
da.Items.Add(d.ToString() );
}
}
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) //using System.Data.SqlClient;
{
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 + "' )");
DataSet ds = new DataSet();
sda.Fill(ds, "titles");
return ds.Tables["titles"];
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)//注意事件名稱是 DayRender
{
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 ListeralControl("" + day + "'>" + e.Day.Date.Day + "" ) );
}
c.Controls.Add(new LiteralControl("
" + txt) ); //如果有的話,就在日期數字後面換行顯示出來
}
}
catch (Exception exe)
{
Response.Write(exe.ToString() );
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-539839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java Calendar日曆類Java
- Calendar日曆型別常見方法(必看!!)型別
- Python3 日曆(Calendar)模組介紹Python
- JS編寫日曆控制元件(支援單日曆 雙日曆 甚至多日曆等)JS控制元件
- 選單欄日曆提醒工具:Calendar 366 II for MacMac
- Calendar -『為移動端而生』的自定義日曆
- 極簡日曆軟體:Just Calendar for Mac中文版Mac
- Just Calendar for Mac(就是一個日曆)2.0.4免啟用版Mac
- 與眾不同 windows phone (26) - Contacts and Calendar(聯絡人和日曆)Windows
- 選單欄日曆軟體:Air Calendar 空氣日曆 for Mac v1.9中文啟用版AIMac
- jsp做的日曆控制元件JS控制元件
- 帶農曆日曆的DatePicker控制元件!Xamarin控制元件開發小記控制元件
- 一款好看的日曆控制元件控制元件
- HTML5自定義日曆控制元件HTML控制元件
- 日曆控制元件 My97DatePicker控制元件
- 適配mpvue平臺的的微信小程式日曆元件mpvue-calendarVue微信小程式元件
- 開源一個ReactNative日曆控制元件React控制元件
- iOS 自定義日曆(日期選擇)控制元件iOS控制元件
- 帶你開發一個日曆控制元件控制元件
- JS日曆控制元件優化(增加時分秒)JS控制元件優化
- Kalendae:JavaScript日期選擇和日曆控制元件JavaScript控制元件
- 相當於delphi的日曆控制元件 (轉)控制元件
- HTML input time calendar 控制元件HTML控制元件
- vue-calendar 基於 vue 2.0 開發的輕量,高效能日曆元件Vue元件
- Java 周曆日曆Java
- HTML input datetime calendar控制元件HTML控制元件
- 解決Raize日曆控制元件顯示的問題AI控制元件
- 強大日曆管理軟體Calendar 366 II for Mac v2.15.2中文啟用版Mac
- HTML input week帶周calendar控制元件HTML控制元件
- HTML input month帶月calendar控制元件HTML控制元件
- 點選文字框下拉彈出日曆控制元件程式碼控制元件
- 移動端網頁新增ios風格日曆控制元件網頁iOS控制元件
- 【SQL】日曆SQL
- delphi 控制元件 LssCalendar V2.0 (支援農曆的月曆控制元件)控制元件
- 日曆2021年日曆表|2021年日曆表列印版 Excel版Excel
- 如何在Mac中使用佛教日曆,波斯日曆等Mac
- 日曆外掛
- 日曆計算