zoukankan
html css js c++ java
ASP.NET 自定义的一个日期验证控件
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Web.UI.WebControls;
using
System.IO;
using
System.Reflection;
using
System.Web.UI;
using
System.ComponentModel;
namespace
SmartWebControls
{
/**/
///
<summary>
///
自定义的一个日期验证控件
///
</summary>
[ToolboxData(
"
<{0}:DateVidatetor runat=\
"
server\
"
></{0}:DateVidatetor>
"
)]
public
class
DateVidatetor :BaseValidator
{
//
服务器端double-check
protected
override
bool
EvaluateIsValid()
{
string
value
=
base
.GetControlValidationValue(ControlToValidate);
DateTime dateValue;
if
(DateTime.TryParse(value,
out
dateValue))
{
return
true
;
}
else
{
return
false
;
}
}
[Description(
"
是否必须有值
"
)]
public
bool
MustHasValue
{
get
{
return
ViewState[
"
MustHasValue
"
]
==
null
?
false
: (
bool
)ViewState[
"
MustHasValue
"
];
}
set
{ ViewState[
"
MustHasValue
"
]
=
value; }
}
protected
override
void
AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
{
base
.AddAttributesToRender(writer);
if
(
base
.RenderUplevel)
{
//
指定客户端验证函数
writer.AddAttribute(
"
evaluationfunction
"
,
"
DateValidatorIsValid
"
);
//
注册自定义属性
writer.AddAttribute(
"
mustHasValue
"
, MustHasValue
?
"
1
"
:
"
0
"
);
}
}
protected
override
void
OnPreRender(EventArgs e)
{
base
.OnPreRender(e);
//
从编译的DLL中取出JavaScript脚本
Stream sm
=
Assembly.GetExecutingAssembly().GetManifestResourceStream(
"
SmartWebControls.Common.js
"
);
string
script;
using
(StreamReader sr
=
new
StreamReader(sm))
{
script
=
sr.ReadToEnd();
}
//
注册客户端JavaScript脚本
if
(
!
Page.ClientScript.IsClientScriptBlockRegistered(
"
SmartWebControls.Common.js
"
))
{
Page.ClientScript.RegisterClientScriptBlock(
this
.GetType(),
"
SmartWebControls.Common.js
"
, script);
}
}
}
}
Javascript文件:
<
script language
=
"
javascript
"
>
<!--
function
DateValidatorIsValid(val)
{
var
value
=
ValidatorGetValue(val.controltovalidate);
var
mustHasValue
=
val.mustHasValue;
if
( value
==
""
)
{
//
alert("Must input a value");
if
(mustHasValue
==
"
1
"
)
return
false
;
else
return
true
;
}
return
checkStringDate(value);
}
function
DateValidator2IsValid(val)
{
var
value
=
ValidatorGetValue(val.txtID);
if
( value
==
""
)
{
//
alert("Must input a value");
if
(mustHasValue
==
"
1
"
)
return
false
;
else
return
true
;
}
return
checkStringDate(value);
}
function
checkStringDate(strDate)
{
var
reg
=/^
(\d
{
4
}
)(\
/
)(\d
{
2
}
)(\
/
)(\d
{
2
}
)
/
;
if
(
!
reg.test(strDate))
{
alert(
"
日期格式不正确!\n正确格式为:2004-01-01
"
);
return
false
;
}
var
ss
=
strDate.split(
"
/
"
);
var
year
=
ss[
0
];
var
monthValue
=
ss[
1
];
if
(monthValue.toString().substring(
0
,
1
)
==
"
0
"
)
{
monthValue
=
monthValue.toString().substring(
1
);
}
var
date
=
ss[
2
];
if
(date.toString().substring(
0
,
1
)
==
"
0
"
)
{
date
=
date.toString().substring(
1
);
}
if
(
!
checkYear(year))
{
return
false
;}
if
(
!
checkMonth(monthValue))
{
return
false
;}
if
(
!
checkDate(year,monthValue,date))
{
return
false
;}
return
true
;
}
function
checkYear(year)
{
if
(isNaN(parseInt(year)))
{
alert(
"
年份输入有误,请重新输入!
"
);
return
false
;
}
else
if
(parseInt(year)
<
1950
||
parseInt(year)
>
2050
)
{
alert(
"
年份应该在1950-2050之间!
"
);
return
false
}
else
return
true
;
}
function
checkMonth(monthValue)
{
if
(isNaN(parseInt(monthValue)))
{
alert(
"
月份输入有误,请重新输入!
"
);
return
false
;
}
else
if
(parseInt(monthValue)
<
1
||
parseInt(monthValue)
>
12
)
{
alert(
"
月份应该在1-12之间!
"
);
return
false
}
else
return
true
;
}
function
checkDate(year, monthValue, date)
{
var
daysOfMonth
=
calcDays(parseInt(year),parseInt(monthValue));
if
(isNaN(parseInt(date)))
{
alert(
"
日期输入有误,请重新输入!
"
);
return
false
;
}
else
if
(parseInt(date)
<
0
||
parseInt(date)
>
daysOfMonth)
{
alert(
"
日期应该在1-
"
+
daysOfMonth
+
"
之间!
"
);
return
false
;
}
else
return
true
;
}
function
calcDays(year, monthValue)
{
var
date
=
new
Date(year,monthValue,
0
);
return
date.getDate();
}
function
isLeapYear(year)
{
if
( (year
%
4
==
0
&&
year
%
100
!=
0
)
||
(year
%
400
==
0
))
return
true
;
else
return
false
;
}
//
-->
</
script
>
查看全文
相关阅读:
Nhibernate对应关系参数介绍
jquery mobile 登陆后页面验证
jquery mobile radio,checkbox button 样式设置
jquery mobile button样式设置
Ext 三级联动 及附值
store操作
Javascript中try finally的细微差别
mysql entity framework生成画面崩溃
PYTHON推导生成
PYTHON修饰器
原文地址:https://www.cnblogs.com/rockniu/p/768583.html
最新文章
201521123068 《java程序设计》 第11周学习总结
201521123068 《java程序设计》 第10周学习总结
201521123068 《java程序设计》第9周学习总结
201521123068 《java程序设计》第8周学习总结
201521123068 《java程序设计》 第7周学习总结
201521123068《Java程序设计》第6周学习总结
201521123068《Java程序设计》第5周学习总结
201521123068《Java程序设计》第4周学习总结
201521123068《Java程序设计》第3周学习总结
201521123068《Java程序设计》第2周学习总结
热门文章
201521123027 <java程序设计>第十二周作业总结
201521123027 <java程序设计>第11周学习总结
201521123027 <java程序设计>第十周学习总结
201521123027 <java程序设计>第九周学习总结
201521123027 <java程序设计>第八周学习总结
201521123027 <java程序设计>第七周学习总结
201521123027 <iava程序设计>第六周学习总结
201521123027 《JAVA程序设计》第五周学习总结
201521123027 《JAVA程序设计》第四周学习总结
201521123027 《JAVA程序设计》第3周学习总结
Copyright © 2011-2022 走看看