2010-07-12 132 views

回答

1

利用CustomValidator可以轻松解决您的问题。

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

使用CompareValidator。大多数人使用它来比较输入到两个文本框中的两个值,但也可以用它来比较一个输入值和一个设置值,就像你的情况一样。

<asp:CompareValidator id="Compare1" 
     ControlToValidate="TextBox1" 
     Type="Date" 
     runat="server"/> 

后面的代码中设置Compare1.ValueToCompare = new DateTime(...);Compare1.Operator = ValidationCompareOperator.LessThanEqual;

此外,请记住:你应该总是验证服务器以及在客户端上,因为客户端验证很容易关闭或绕过。我建议你看看Fluent validation

+2

使用在您的答案中建议的技术标记问题有点粗鲁... – cjk 2010-07-12 07:55:09

+1

对不起,这是粗鲁吗?我认为这很有帮助。这样用户可以很容易地找到关于该技术的其他问题。另外,使用该技术的其他人可以找到这个问题并提供帮助。我以为我很有帮助。有什么被认为粗鲁的社区帖子吗?如果其他用户将@ ck的评论标记为好评,我很高兴删除这些标签。这可能比添加自己的评论更好,因为这将不属于这个问题的主题。 – 2010-07-12 08:15:08

1

在JavaScript的解决方案,

确保设置小时,分钟,秒和毫秒为0,如果你只是想比较日期(即天,月,年)。功能acheive提的是上面如下,

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函数返回毫秒午夜以来经过1月1日的数字,1970年

0

不错的约会伴侣。有很多选项可用。您可以使用asp.net的自定义验证器控件,javascript等。更好的选择是使用AJAX控件工具包的带遮罩的编辑验证程序的遮罩编辑扩展器。您可以指定范围,自定义掩码(yyyy/MM/dd),甚至可以指定一个空字段消息。

只要确保您将网站的文化设置为正确,以便您可以正确验证日期。 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"/>