日曆控件

博客展示了UCCalendar日期控件的代码实现。包含UCCalendar.ascx文件中的JavaScript日期格式检查函数,以及UCCalendar.ascx.vb文件中的用户控件类代码,实现了文本框与日历的交互,如选择日期显示在文本框等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.UCCalendar.ascx
<%@ control Language="vb" AutoEventWireup="false" Codebehind="UCCalendar.aspx.vb" Inherits="WebApplication1.UCCalendar"%>
<FONT face="新細明體">
 <script language="javascript">
function CheckDate(o){
   var Str=new String;
   var StrEnd = new String;
   Str = o.value;
   if (Str != "" )
   {
     if (chkformat(Str) == false)
        {
          o.focus();  
        }
   }       
  }

 

function chkformat(datestr)
{

var lthdatestr
lthdatestr= datestr.length ;
var tmpy="";
var tmpm="";
var tmpd="";
//var datestr;
var status;
status=0;

for (i=0;i<lthdatestr;i++){
if (datestr.charAt(i)== '/'){
status++;
}
if (status>2){
alert("日期錯誤");
return false;
}
if ((status==0) && (datestr.charAt(i)!='/')){
tmpy=tmpy+datestr.charAt(i)
}
if ((status==1) && (datestr.charAt(i)!='/')){
tmpm=tmpm+datestr.charAt(i)
}
if ((status==2) && (datestr.charAt(i)!='/')){
tmpd=tmpd+datestr.charAt(i)
}
}

year=new String (tmpy);
month=new String (tmpm);
day=new String (tmpd)
//tempdate= new String (year+month+day);
//alert(tempdate);
if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
{
alert("日期錯誤");
// alert("date");
return false;
}
if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
{
alert ("日期錯誤");
return false;
}
if (!((year % 4)==0) && (month==2) && (day==29))
{
alert ("日期錯誤");
return false;
}
if ((month<=7) && ((month % 2)==0) && (day>=31))
{
alert ("日期錯誤");
return false;
}
if ((month>=8) && ((month % 2)==1) && (day>=31))
{
alert ("日期錯誤");
return false;
}
if ((month==2) && (day==30))
{
alert("日期錯誤");
return false;
}

return true;
}

 </script>
 <div align="center"><asp:textbox id="txtCalendar" οnblur="CheckDate(this)" runat="server" Width="181px"></asp:textbox><asp:button id="btnCandelar" runat="server" Text="...."></asp:button><asp:calendar id="Calendar1" runat="server" Width="208px" Height="200px" BorderWidth="1px" BackColor="White"
   ForeColor="#003399" Font-Size="8pt" Font-Names="Verdana" BorderColor="#3366CC" CellPadding="1" ShowGridLines="True">
   <TodayDayStyle ForeColor="White" BackColor="#99CCCC"></TodayDayStyle>
   <SelectorStyle ForeColor="#336666" BackColor="#99CCCC"></SelectorStyle>
   <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF"></NextPrevStyle>
   <DayHeaderStyle Height="1px" ForeColor="#336666" BackColor="#99CCCC"></DayHeaderStyle>
   <SelectedDayStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedDayStyle>
   <TitleStyle Font-Size="10pt" Font-Bold="True" Height="25px" BorderWidth="1px" ForeColor="#CCCCFF"
    BorderStyle="Solid" BorderColor="#3366CC" BackColor="#003399"></TitleStyle>
   <WeekendDayStyle BackColor="#CCCCFF"></WeekendDayStyle>
   <OtherMonthDayStyle ForeColor="#999999"></OtherMonthDayStyle>
  </asp:calendar></div>
</FONT>


2.UCCalendar.ascx.vb

Public Class UCCalendar

    Inherits System.Web.UI.UserControl

 

#Region " Web Form 設計工具產生的程式碼 "

 

    '此為 Web Form 設計工具所需的呼叫。

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

 

    End Sub

    Protected WithEvents Calendar1 As System.Web.UI.WebControls.Calendar

    Protected WithEvents txtCalendar As System.Web.UI.WebControls.TextBox

    Protected WithEvents btnCandelar As System.Web.UI.WebControls.Button

 

    '注意: 下列預留位置宣告是 Web Form 設計工具需要的項目。

    '請勿刪除或移動它。

    Private designerPlaceholderDeclaration As System.Object

 

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init

        'CODEGEN: 此為 Web Form 設計工具所需的方法呼叫

        '請勿使用程式碼編輯器進行修改。

        InitializeComponent()

    End Sub

 

#End Region

 

    Public Property txtCanendar() As String

        Get

            Return Me.txtCalendar.Text

        End Get

        Set(ByVal Value As String)

            Me.txtCalendar.Text = Value

        End Set

    End Property

 

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在這裡放置使用者程式碼以初始化網頁

    End Sub

 

    Private Sub Calendar1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged

        Me.txtCalendar.Text = Me.Calendar1.SelectedDate.ToShortDateString

        Me.Calendar1.Visible = False

    End Sub

 

    Private Sub btnCandelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCandelar.Click

        If Me.Calendar1.Visible = True Then

            Me.Calendar1.Visible = False

        Else

            Me.Calendar1.Visible = True

        End If

    End Sub

End Class

 

3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值