<small id='ILKWl'></small><noframes id='ILKWl'>

      1. <i id='ILKWl'><tr id='ILKWl'><dt id='ILKWl'><q id='ILKWl'><span id='ILKWl'><b id='ILKWl'><form id='ILKWl'><ins id='ILKWl'></ins><ul id='ILKWl'></ul><sub id='ILKWl'></sub></form><legend id='ILKWl'></legend><bdo id='ILKWl'><pre id='ILKWl'><center id='ILKWl'></center></pre></bdo></b><th id='ILKWl'></th></span></q></dt></tr></i><div id='ILKWl'><tfoot id='ILKWl'></tfoot><dl id='ILKWl'><fieldset id='ILKWl'></fieldset></dl></div>
      2. <legend id='ILKWl'><style id='ILKWl'><dir id='ILKWl'><q id='ILKWl'></q></dir></style></legend>

        • <bdo id='ILKWl'></bdo><ul id='ILKWl'></ul>
        <tfoot id='ILKWl'></tfoot>

        显示全年的 asp.net 可用性日历

        时间:2023-08-26

      3. <legend id='sWj8e'><style id='sWj8e'><dir id='sWj8e'><q id='sWj8e'></q></dir></style></legend>
      4. <i id='sWj8e'><tr id='sWj8e'><dt id='sWj8e'><q id='sWj8e'><span id='sWj8e'><b id='sWj8e'><form id='sWj8e'><ins id='sWj8e'></ins><ul id='sWj8e'></ul><sub id='sWj8e'></sub></form><legend id='sWj8e'></legend><bdo id='sWj8e'><pre id='sWj8e'><center id='sWj8e'></center></pre></bdo></b><th id='sWj8e'></th></span></q></dt></tr></i><div id='sWj8e'><tfoot id='sWj8e'></tfoot><dl id='sWj8e'><fieldset id='sWj8e'></fieldset></dl></div>

          <bdo id='sWj8e'></bdo><ul id='sWj8e'></ul>

        • <small id='sWj8e'></small><noframes id='sWj8e'>

                1. <tfoot id='sWj8e'></tfoot>
                    <tbody id='sWj8e'></tbody>
                  本文介绍了显示全年的 asp.net 可用性日历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在寻找一个 asp.net 控件,它将以网格格式显示一整年,每个月为一行,该月中的每一天为列.我发现以下经典的 ASP 脚本可以生成正确的格式:http:///www.livio.net/code/calendar_36/CalendarTestYearly36.asp?infomode=HELP(参见年历)

                  是否有类似的东西可用,或者有没有办法在没有特定控件的情况下简单地做到这一点?我是 asp.net 的新手.

                  谢谢

                  解决方案

                  为你准备了这个:

                  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 过渡//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="服务器"><title>年历</title><style type="text/css">表 td { 填充:0;边距:0;边框:1px 实心#dadada;}表{宽度:25px;文本对齐:居中;}表 td { 文本对齐:中心;}表 td 跨度 { 颜色:#dadada;}表 td {颜色:#000000;文字装饰:无;}表 td a:hover { text-decoration:underline;}表 td a.hasEvents { 颜色:#ff0000;}表 td a.selected { 颜色:#0000ff;字体粗细:粗体;}表 td.month { 背景颜色:#999999;}表 td.weekend { 背景颜色:#D0D0D0;}</风格></头><身体><form id="form1" runat="server">

                  <table cellpadding="0" cellspacing="0"><头><tr><th><asp:Literal ID="litSelectedYear" runat="server"/></th><% for (int iWeek = 1; iWeek <= 6; iWeek++) {for (int iDay = 1; iDay <= 7; iDay++) { if (iWeek == 6 && iDay > 2) 休息;%><th><%= GetDayName(iDay) %></th><% } } %></tr></头><asp:Repeater ID="repMonths" runat="server" OnInit="repMonths_OnInit" OnItemDataBound="repMonths_OnItemDataBound"><项目模板><tr><td class="月"><asp:HyperLink ID="hylMonth" runat="server"/></td><asp:Repeater ID="repDays" runat="server" OnItemDataBound="repDays_OnItemDataBound"><项目模板><td id="tdDay" runat="服务器"><asp:Literal ID="litDay" runat="server"/></td></项目模板></asp:中继器></tr></项目模板></asp:中继器></表></div></表格></身体></html>

                  <小时>

                  使用系统;使用 System.Web.UI.HtmlControls;使用 System.Web.UI.WebControls;公共部分类_默认:System.Web.UI.Page{私人日期时间_dtMonth;私人日期时间_selectedDate;私人布尔 _specialDaySelected = true;私人 int _currentBindingMonth;protected void repMonths_OnInit(object sender, EventArgs e){if (!DateTime.TryParse(Request.QueryString["CalDate"], out _selectedDate)){_specialDaySelected = false;int selectedMonth, selectedYear;int.TryParse(Request.QueryString["CalYear"], out selectedYear);int.TryParse(Request.QueryString["CalMonth"], out selectedMonth);if (selectedYear <= 0) selectedYear = DateTime.Now.Year;if (selectedMonth <= 1) selectedMonth = 1;else if (selectedMonth > 12) selectedMonth = 12;_selectedDate = new DateTime(selectedYear, selectedMonth, 1);}litSelectedYear.Text = _selectedDate.Year.ToString();repMonths.DataSource = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};repMonths.DataBind();}protected void repMonths_OnItemDataBound(对象发送者,RepeaterItemEventArgs e){if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){中继器 repDays = (Repeater)e.Item.FindControl("repDays");超链接 hylMonth = (HyperLink)e.Item.FindControl("hylMonth");_currentBindingMonth = (int)e.Item.DataItem;_dtMonth = new DateTime(_selectedDate.Year, _currentBindingMonth, 1);hylMonth.Text = _dtMonth.ToString("MMM");hylMonth.NavigateUrl = string.Format("{0}?CalMonth={1}&CalYear={2}", Request.Path, _currentBindingMonth, _selectedDate.Year);if (_currentBindingMonth == _selectedDate.Month) hylMonth.Attributes.Add("class", "selected");if (_dtMonth.DayOfWeek != DayOfWeek.Monday){int daysToSubtract = -(int)_dtMonth.DayOfWeek;if (_dtMonth.DayOfWeek == DayOfWeek.Sunday) daysToSubtract = -7;//特殊情况.美国的星期从星期日开始,因此枚举 DayOfWeek.Sunday = 0._dtMonth = _dtMonth.AddDays(daysToSubtract + 1);}DateTime[] 日期 = 新的 DateTime[37];for (int i = 0; i <37; i++){日期[i] = _dtMonth;_dtMonth = _dtMonth.AddDays(1);}repDays.DataSource = 日期;repDays.DataBind();}}protected void repDays_OnItemDataBound(对象发送者,RepeaterItemEventArgs e){if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){DateTime 日期 = (DateTime)e.Item.DataItem;字面量 litDay = (字面量)e.Item.FindControl("litDay");HtmlTableCell tdDay = (HtmlTableCell)e.Item.FindControl("tdDay");if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday)tdDay.Attributes.Add("class", "weekend");if (_currentBindingMonth == date.Month)litDay.Text = string.Format("<a href="{0}?CalDate={3}-{2}-{1}"{4}>{3}</a>",Request.Path, date.Year, date.Month, date.Day.ToString("D2"), (_specialDaySelected && date.Equals(_selectedDate)) ? " class="selected"" : string.Empty);别的litDay.Text = string.Format("<span>{0}</span>", date.Day.ToString("D2"));//清除IDtdDay.ID = string.Empty;}}公共静态字符串 GetDayName(int dayInWeek){开关(dayInWeek){案例1:返回mo";案例2:返回tu";案例3:返回我们";案例4:返回th";案例5:返回fr";案例6:返回sa";案例7:返回su";}return "上帝一周只创造了 7 天.";}}

                  I am looking for a asp.net control that will display a full year in a grid format, with each month as a row and each day in the month as the columns. I have found the following classic ASP script which produces the correct format: http://www.livio.net/code/calendar_36/CalendarTestYearly36.asp?infomode=HELP (see Yearly Calendar)

                  Is anything like this available or is there a way to do this simply without a specific control? I am new to asp.net.

                  Thanks

                  解决方案

                  Whipped up this, just for you:

                  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
                  
                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                  
                  <html xmlns="http://www.w3.org/1999/xhtml">
                  <head runat="server">
                      <title>Yearly Calendar</title>
                      <style type="text/css">
                          table td { padding:0; margin:0; border:1px solid #dadada; }
                          table th { width:25px; text-align:center; }
                          table td { text-align:center; }
                          table td span { color:#dadada; }
                          table td a { color:#000000; text-decoration:none; }
                          table td a:hover { text-decoration:underline; }
                          table td a.hasEvents { color:#ff0000; }
                          table td a.selected { color:#0000ff; font-weight:bold; }
                          table td.month { background-color:#999999; }
                          table td.weekend { background-color:#D0D0D0; }
                      </style>
                  </head>
                  <body>
                      <form id="form1" runat="server">
                      <div>
                          <table cellpadding="0" cellspacing="0">
                              <thead>
                                  <tr>
                                      <th>
                                          <asp:Literal ID="litSelectedYear" runat="server" />
                                      </th>
                                      <% for (int iWeek = 1; iWeek <= 6; iWeek++) {
                                          for (int iDay = 1; iDay <= 7; iDay++) { if (iWeek == 6 && iDay > 2) break; %>
                                          <th>
                                              <%= GetDayName(iDay) %>
                                          </th>
                                      <% } } %>
                                  </tr>
                              </thead>
                              <asp:Repeater ID="repMonths" runat="server" OnInit="repMonths_OnInit" OnItemDataBound="repMonths_OnItemDataBound">
                                  <ItemTemplate>                  
                                      <tr>
                                          <td class="month">
                                              <asp:HyperLink ID="hylMonth" runat="server" />
                                          </td>
                                          <asp:Repeater ID="repDays" runat="server" OnItemDataBound="repDays_OnItemDataBound">
                                              <ItemTemplate>
                                                  <td id="tdDay" runat="server">
                                                      <asp:Literal ID="litDay" runat="server" />
                                                  </td>
                                              </ItemTemplate>
                                          </asp:Repeater>
                                      </tr>
                                  </ItemTemplate>
                              </asp:Repeater>
                          </table>
                      </div>
                      </form>
                  </body>
                  </html>
                  


                  using System;
                  using System.Web.UI.HtmlControls;
                  using System.Web.UI.WebControls;
                  
                  public partial class _Default : System.Web.UI.Page
                  {
                      private DateTime _dtMonth;
                      private DateTime _selectedDate;
                      private bool _specialDaySelected = true;
                      private int _currentBindingMonth;
                  
                      protected void repMonths_OnInit(object sender, EventArgs e)
                      {
                          if (!DateTime.TryParse(Request.QueryString["CalDate"], out _selectedDate))
                          {
                              _specialDaySelected = false;
                              int selectedMonth, selectedYear;
                              int.TryParse(Request.QueryString["CalYear"], out selectedYear);
                              int.TryParse(Request.QueryString["CalMonth"], out selectedMonth);
                  
                              if (selectedYear <= 0) selectedYear = DateTime.Now.Year;
                              if (selectedMonth <= 1) selectedMonth = 1;
                              else if (selectedMonth > 12) selectedMonth = 12;
                  
                              _selectedDate = new DateTime(selectedYear, selectedMonth, 1);
                          }
                  
                          litSelectedYear.Text = _selectedDate.Year.ToString();
                  
                          repMonths.DataSource = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};
                          repMonths.DataBind();
                      }
                  
                      protected void repMonths_OnItemDataBound(object sender, RepeaterItemEventArgs e)
                      {
                          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                          {
                              Repeater repDays = (Repeater)e.Item.FindControl("repDays");
                              HyperLink hylMonth = (HyperLink)e.Item.FindControl("hylMonth");
                              _currentBindingMonth = (int)e.Item.DataItem;
                              _dtMonth = new DateTime(_selectedDate.Year, _currentBindingMonth, 1);
                  
                              hylMonth.Text = _dtMonth.ToString("MMM");
                              hylMonth.NavigateUrl = string.Format("{0}?CalMonth={1}&CalYear={2}", Request.Path, _currentBindingMonth, _selectedDate.Year);
                  
                              if (_currentBindingMonth == _selectedDate.Month) hylMonth.Attributes.Add("class", "selected");
                  
                              if (_dtMonth.DayOfWeek != DayOfWeek.Monday)
                              {
                                  int daysToSubtract = -(int)_dtMonth.DayOfWeek;
                  
                                  if (_dtMonth.DayOfWeek == DayOfWeek.Sunday) daysToSubtract = -7; // Special case. US weeks start with sunday, thus the enum DayOfWeek.Sunday = 0.
                  
                                  _dtMonth = _dtMonth.AddDays(daysToSubtract + 1);
                              }
                  
                              DateTime[] dates = new DateTime[37];
                              for (int i = 0; i < 37; i++)
                              {
                                  dates[i] = _dtMonth;
                                  _dtMonth = _dtMonth.AddDays(1);
                              }
                  
                              repDays.DataSource = dates;
                              repDays.DataBind();
                          }
                      }
                  
                      protected void repDays_OnItemDataBound(object sender, RepeaterItemEventArgs e)
                      {
                          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                          {
                              DateTime date = (DateTime)e.Item.DataItem;
                              Literal litDay = (Literal)e.Item.FindControl("litDay");
                              HtmlTableCell tdDay = (HtmlTableCell)e.Item.FindControl("tdDay");
                  
                              if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday)
                                  tdDay.Attributes.Add("class", "weekend");
                  
                              if (_currentBindingMonth == date.Month)
                                  litDay.Text = string.Format("<a href="{0}?CalDate={3}-{2}-{1}"{4}>{3}</a>", Request.Path, date.Year, date.Month, date.Day.ToString("D2"), (_specialDaySelected && date.Equals(_selectedDate)) ? " class="selected"" : string.Empty);
                              else
                                  litDay.Text = string.Format("<span>{0}</span>", date.Day.ToString("D2"));
                  
                              // Clear ID's
                              tdDay.ID = string.Empty;
                          }
                      }
                  
                      public static string GetDayName(int dayInWeek)
                      {
                          switch (dayInWeek)
                          {
                              case 1: return "mo";
                              case 2: return "tu";
                              case 3: return "we";
                              case 4: return "th";
                              case 5: return "fr";
                              case 6: return "sa";
                              case 7: return "su";
                          }
                  
                          return "God only made seven days in a week.";
                      }
                  }
                  

                  这篇关于显示全年的 asp.net 可用性日历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:masterpage initializeculture 找不到合适的方法来覆盖错 下一篇:.NET 是否给了我错误的 2008 年 12 月 29 日的周数

                  相关文章

                  最新文章

                2. <i id='AKoW9'><tr id='AKoW9'><dt id='AKoW9'><q id='AKoW9'><span id='AKoW9'><b id='AKoW9'><form id='AKoW9'><ins id='AKoW9'></ins><ul id='AKoW9'></ul><sub id='AKoW9'></sub></form><legend id='AKoW9'></legend><bdo id='AKoW9'><pre id='AKoW9'><center id='AKoW9'></center></pre></bdo></b><th id='AKoW9'></th></span></q></dt></tr></i><div id='AKoW9'><tfoot id='AKoW9'></tfoot><dl id='AKoW9'><fieldset id='AKoW9'></fieldset></dl></div>
                  <legend id='AKoW9'><style id='AKoW9'><dir id='AKoW9'><q id='AKoW9'></q></dir></style></legend>
                      <tfoot id='AKoW9'></tfoot>

                      <small id='AKoW9'></small><noframes id='AKoW9'>

                        <bdo id='AKoW9'></bdo><ul id='AKoW9'></ul>