【问题标题】:Telerik MVC DatePicker Disable days of weekTelerik MVC DatePicker 禁用星期几
【发布时间】:2012-07-07 05:39:11
【问题描述】:

有没有办法让 DatePicker 允许用户仅从弹出日期中选择星期日/星期六,因为星期从星期日开始并在星期六结束?

我有 2 个 DatePickers 作为范围(从 & 到),验证是允许用户在从框中只选择星期日,在 to 框中选择星期六。

有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc-3 telerik telerik-datepicker


    【解决方案1】:

    也许您可以为工作日的所有链接添加一个 jquery 事件处理程序(周末在 td 上有一个周末类)并防止默认行为,因此无论何时单击它们都不做任何事情。此外,您可能希望更改工作日值的样式,这样用户就不会因为点击而没有得到想要的效果而烦恼

    【讨论】:

      【解决方案2】:

      在 aspx 中添加以下代码

         <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DefaultCS.aspx.cs" Inherits="DefaultCS" %>
      
       <%@ Register TagPrefix="radcln" Namespace="Telerik.WebControls" Assembly="RadCalendar.Net2" %>
       <!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>Untitled Page</title>
      </head>
      <body>
      <form id="form1" runat="server">
      <div>
      
              <script type="text/javascript">
              function OnDayRender(calendarInstance, args)
              {   
                  var jsDate = new Date(args.Date[0], args.Date[1] - 1, args.Date[2]);
                  if (jsDate.getDay() != 0)//(jsDate.getDay()!=6) for Saturday 
                  {
                      var otherMonthCssClass = "otherMonth_" + calendarInstance.Skin;    
                      args.Cell.className = otherMonthCssClass; 
                      args.Cell.innerHTML = "<span>" + args.Date[2] + "</span>";
                      args.Cell.DayId = "";
                  }  
              }
              </script>
      
              <radcln:RadDatePicker ID="RadDatePicker1" runat="server">
                  <Calendar OnDayRender="Calendar_OnDayRender">
                      <ClientEvents OnDayRender="OnDayRender" />
                  </Calendar>
              </radcln:RadDatePicker>        
      
      </div>
      </form>
      

      在cs文件中

      using System;
      using System.Web.UI.WebControls;
      using Telerik.WebControls;
      using Telerik.WebControls.Base.Calendar.Enumerations;
      
      public partial class DefaultCS : System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              if (!Page.IsPostBack)
          {
              RadDatePicker1.Calendar.SpecialDays.Clear();
          }
      }
      
      protected void Calendar_OnDayRender(object sender, Telerik.WebControls.Base.Calendar.Events.DayRenderEventArgs e)
      {
          if (e.Day.Date.DayOfWeek != DayOfWeek.Sunday) //(e.Day.Date.DayOfWeek != DayOfWeek.Saturday) for Saturday
          {
              string calendarSkin = RadDatePicker1.Calendar.Skin != "" ? RadDatePicker1.Calendar.Skin : "Default";
              string otherMonthCssClass = String.Format("otherMonth_{0}", calendarSkin);
              e.Cell.Text = "";
              e.Cell.CssClass = otherMonthCssClass; //set new CssClass for the disabled calendar day cells (e.g. look like other month days here)
              Label label = new Label();
              label.Text = e.Day.Date.Day.ToString();
              e.Cell.Controls.Add(label);
              RadCalendarDay calendarDay = new RadCalendarDay();
              calendarDay.Date = e.Day.Date;
              calendarDay.IsSelectable = false;
              calendarDay.ItemStyle.CssClass = otherMonthCssClass;
              RadDatePicker1.Calendar.SpecialDays.Add(calendarDay);
          }
      
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 2015-12-29
        • 1970-01-01
        • 2020-11-28
        • 2020-01-01
        • 2021-03-12
        • 1970-01-01
        相关资源
        最近更新 更多