C# 验证用户控件而不考虑页面控件
我想在回发时验证我的用户控件。这是我希望验证的usercontrol中的属性:C# 验证用户控件而不考虑页面控件,c#,asp.net,validation,C#,Asp.net,Validation,我想在回发时验证我的用户控件。这是我希望验证的usercontrol中的属性: public string Text { get { return DateTextBox.Text; } set { DateTextBox.Text = value; } } Text属性的格式必须始终为“YYYY/MM/DD”。我希望无论用户在
public string Text
{
get
{
return DateTextBox.Text;
}
set
{
DateTextBox.Text = value;
}
}
Text
属性的格式必须始终为“YYYY/MM/DD”。我希望无论用户在何处向每个页面添加此控件,当用户提交任何按钮时,如果文本
无效,则不会引发按钮提交事件。主要的问题是,我希望这个作品不改变任何页面。我的意思是不检查像Page.IsValid这样的内容
试试下面的代码:-
public string Text
{
get
{
return DateTextBox.Text;
}
set
{
try
{
DateTime d = DateTime.ParseExact(value, "yyyy/MM/dd",CultureInfo.InvarientCulture);
DateTextBox.Text = value;
}
catch(Exception ex)
{
//// Code when it does not match format.
}
}
}
您可以通过将ASP.Net验证控件添加到
.ascx
标记代码中来实现这一点
尝试添加以下代码
<asp:CompareValidator
id="dateValidator" runat="server"
Type="Date"
Operator="DataTypeCheck"
ControlToValidate="DateTextBox"
ErrorMessage="Please enter a valid date.">
</asp:CompareValidator>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1"
ControlToValidate="DateTextBox"
runat="server"
ErrorMessage="Required!">
</asp:RequiredFieldValidator>
但是,此方法的问题是,所有没有CauseValidation=False的按钮(保存或提交)都将尝试验证此文本框
要克服这个问题,您需要
此方法不会停止回发