2012-07-07 54 views
2

有没有办法让DatePicker允许用户从星期六开始从星期天开始的弹出日期只选择星期六/星期六&星期六结束?Telerik MVC DatePicker禁用星期几

我有2个DatePickers作为一个范围(从&到),验证是让用户只能选择星期日在箱子和星期六在箱子。

任何想法?

回答

1

也许你可以添加一个jQuery的事件处理程序的所有链接是星期几(周末的日子有一个周末类的td),并防止默认行为,所以每当你点击他们不做任何事情。你可能还需要改变平日值的风格,使用户不生气为ASPX点击并没有得到所期望的效应

+0

没试过你的答案但是,但我相信它会起作用。 – SoftwareGeek 2012-07-24 03:03:59

0

添加下面的代码

<%@ 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); 
    } 

} 

}