[英]Compare Validator for date validation
以下是我用来在asp.net中选择日期的代码
我使用文本框显示日期和图像以显示日历图标,使用Ajax日历扩展器以dd-mmm-yyyy
格式选择日期。
<asp:TextBox ID="txtReqCompDate" runat="server"
ToolTip="Select Analysis Required Date" CssClass="formtext"
CausesValidation="True">
</asp:TextBox>
<asp:ImageButton ID="ibReqCompletionDate" runat="server"
ImageUrl="~/Images/Calendar.png" ImageAlign="AbsBottom" Height="15px" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server"
ControlToValidate="txtReqCompDate" Display="Dynamic" Text="Required"
ErrorMessage="Analysis Required Date" ValidationGroup="valProjForm"
SetFocusOnError="True" Font-Size="Smaller">
</asp:RequiredFieldValidator>
<asp:CompareValidator runat="server" ID="cmp1"
ErrorMessage="The date must be greater than todays date"
ControlToValidate="txtReqCompDate" Type="Date" Operator="GreaterThan" />
<cc1:CalendarExtender ID="CalendarExtender1" runat="server"
PopupButtonID="ibReqCompletionDate"
TargetControlID="txtReqCompDate" Format="dd-MMM-yyyy" Enabled="True">
</cc1:CalendarExtender>
即使我在页面加载中使用此行也没有用。
cmp1.ValueToCompare = DateTime.Now.ToShortDateString();
请建议我一种当有人使用comparevalidator选择的日期小于今天的日期时立即显示消息的方法。
我在网站的多个页面中都需要类似的功能。 并且还在同一页面中选择一个大于txtReqCompDate的日期。
或者,建议我一种方法来禁用ajax calenderextender中的先前日期,并在Ajax扩展器中显示当前日期之前的日期,而不会影响我在.net 2.0中进行编码的当前代码功能。
我的主要问题在这里,它显示验证,如果日期小于今天的日期,即使该日期大于当前日期也是如此。 无论我使用,验证或确定范围,始终显示错误消息
将Type
设置为CompareValidator
String
,然后在后面的代码中获取日期,并将其格式化为您需要的string
( "dd-MMM-yy"
)“ 区分大小写 ”。 我已经通过手动输入日期测试了此代码,并且该代码有效。
<asp:CompareValidator runat="server" ID="cmp1"
ErrorMessage="The date must be greater than todays date"
ControlToValidate="txtReqCompDate" Type="String" Operator="GreaterThan" />
码:
string date = DateTime.Now.ToString("dd-MMM-yy");
cmp1.ValueToCompare = date;
代替比较验证器,使用范围验证器
**In html**
<asp:RangeValidator ID="RangeValidator1" runat="server">
</asp:RangeValidator>
**C#**
RangeValidator1.ControlToValidate = "txtReqCompDate";
RangeValidator1.Type = ValidationDataType.Date;
RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString();
RangeValidator1.MaximumValue = DateTime.Now.AddDays(7).ToShortDateString();
RangeValidator1.ErrorMessage = "Select date between today to next 7 days!";
您可以根据需要进行修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.