在Web应用程序中,我尝试使用compare验证器验证日期。但它是抛出错误,这是我的代码
<asp:CompareValidator
ID="CompareValidator1"
runat="server"
Text="*"
Display="None"
ValidationGroup ="a"
ControlToValidate="txtValidate"
ValueToCompare='<%# DateTime.Today.ToShortDateString() %>'
Operator="GreaterThan"
Type ="Date"
ErrorMessage="Date Should Greater Than Todate">
</asp:CompareValidator>
错误是:
'CompareValidator1'的ValueToCompare属性的值'' 无法转换为“日期”类型。
答案 0 :(得分:2)
在Page_Load
方法中,请致电Page.DataBind()
。
这将在页面加载时执行数据手册代码。
答案 1 :(得分:1)
您的Comapre验证器位于网格或转发器中,或者仅位于页面上。
如果它不在Grid中,那么你可以从后面的代码中给出ValueToCompare值。 ValueToCompare ='&lt;%#DateTime.Today.ToShortDateString()%&gt;'实际上并没有约束日期。你可以用火虫检查它。它不会呈现为日期,它会将您显示为字符串格式。所以从后面的代码中设置这个值。 使用此代码。
protected void Page_Load(object sender, EventArgs e)
{
CompareValidator1.ValueToCompare = DateTime.Today.ToShortDateString();
}
答案 2 :(得分:-1)
尝试'='而不是'#'。见here
<asp:CompareValidator
ID="CompareValidator1"
runat="server"
Text="*"
Display="None"
ValidationGroup ="a"
ControlToValidate="txtValidate"
ValueToCompare='<%= DateTime.Today.ToShortDateString() %>'
Operator="GreaterThan"
Type ="Date"
ErrorMessage="Date Should Greater Than Todate">
</asp:CompareValidator>