我们如何在asp.net上使用数据验证? 日期不能插入大于当前日期。
答案 0 :(得分:2)
使用CompareValidator。大多数人使用它来比较输入到两个文本框中的两个值,但您也可以使用它来比较一个输入值和设置值,如您的情况。
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
Type="Date"
runat="server"/>
在集合Compare1.ValueToCompare = new DateTime(...);
和Compare1.Operator = ValidationCompareOperator.LessThanEqual;
另外,请记住:您应始终在服务器以及客户端上进行验证,因为客户端验证很容易关闭或旁路。我建议你看看Fluent validation。
答案 1 :(得分:1)
利用CustomValidator
可以轻松解决您的问题。
或
您可以使用javascript验证日期,如下所示
var myDate=new Date();
myDate.setFullYear(2010,0,14);
var today = new Date();
if (myDate>today)
{
alert("Today is before 14th January 2010");
}
else
{
alert("Today is after 14th January 2010");
}
答案 2 :(得分:1)
在javascript解决方案中,
如果您只想比较日期(即日,月和年),请务必将hrs,min,secs和milliseconds设置为0。实现上述功能如下,
function f_tcalResetTime (d_date) {
d_date.setHours(0);
d_date.setMinutes(0);
d_date.setSeconds(0);
d_date.setMilliseconds(0);
return d_date;
}
如果你比较日期,javascript实际上会在幕后调用date.valueOf函数,它返回自1970年1月1日午夜以来经过的毫秒数。
答案 3 :(得分:0)
只需确保正确设置网站文化,以便正确验证日期。 http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/MaskedEdit/MaskedEdit.aspx
干杯。
<ajaxToolkit:MaskedEditValidator
ControlExtender="MaskedEditExtender2"
ControlToValidate="TextBox2"
IsValidEmpty="False"
MaximumValue="12000"
EmptyValueMessage="Number is required"
InvalidValueMessage="Number is invalid"
MaximumValueMessage="Number > 12000"
MinimumValueMessage="Number < -100"
MinimumValue="-100"
EmptyValueBlurredText="*"
InvalidValueBlurredMessage="*"
MaximumValueBlurredMessage="*"
MinimumValueBlurredText="*"
Display="Dynamic"
TooltipMessage="Input a number: -100 up to 12.000"/>