WEBFORM中 Calendar控件禁止選擇某些日期的方法

CSDN論壇有壇友問:如何使日期控件上某幾個日期無法選擇。

說實話自己以前也沒仔細研究過Calendar這個控件,一般都用其他日期控件,如:My97DatePicker。自己試驗了一下,發現了Calendar控件有個事件Calendar1_DayRender,可以實現讓某些日期無法選擇 MSDN對這個事件的解釋:當爲 Calendar 控件在控件層次結構中創建每一天時發生。點擊打開鏈接

DayRenderCalendar控件的一個相對重要的事件.它可以用來在Calendar控件中所有日期的長相”.這個事件使用了一個DayRenderEventArgs對象作爲其參數.後者則包括兩個屬性:CellDay,Calendar1_DayRender具體用法參考Blog: Calendar控件之DayRender事件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._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>無標題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Calendar ID="Calendar1" runat="server" BackColor="White" 
            BorderColor="White" BorderWidth="1px" Font-Names="Verdana" Font-Size="9pt" 
            ForeColor="Black" Height="190px" NextPrevFormat="FullMonth" 
            ondayrender="Calendar1_DayRender" Width="350px">
            <SelectedDayStyle BackColor="#333399" ForeColor="White" />
            <TodayDayStyle BackColor="#CCCCCC" />
            <OtherMonthDayStyle ForeColor="#999999" />
            <NextPrevStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" 
                VerticalAlign="Bottom" />
            <DayHeaderStyle Font-Bold="True" Font-Size="8pt" />
            <TitleStyle BackColor="White" BorderColor="Black" BorderWidth="4px" 
                Font-Bold="True" Font-Size="12pt" ForeColor="#333399" />
        </asp:Calendar>
    </div>
    </form>
</body>
</html>

假如不讓選中這幾個日期:20120301、20120229、20120305、20110110,代碼如下:

後臺代碼:

  protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.Date.ToString("yyyyMMdd").Equals("20120301") || e.Day.Date.ToString("yyyyMMdd").Equals("20120229") || e.Day.Date.ToString("yyyyMMdd").Equals("20120305") || e.Day.Date.ToString("yyyyMMdd").Equals("20110110"))
            {
                e.Day.IsSelectable = false;
            }
        }
ee

可以看到上述日期2012年3月1號沒有下劃線,他是不能夠被選中的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章