环境:ASP.NET 3.5,Visual Studio 2008
我有3个文本框
TextBox1.Text = "is a date value";
TextBox2.Text = "is hour of a datetime";
TextBox3.Text = "is minutes of a datetime";
(不要问为什么:)这是其中之一......它只是)
如果所有3个文本框的组合都是有效的日期时间,是否有办法使用单个asp.net验证器控件来检查(客户端和服务器端)?
此外,在我看来可以有各种可能性(即只需在其中一个文本框中输入内容,有效日期但无效时间等)。
如果不可能服务器端检查是什么样的?
例如,这是我到目前为止所做的:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime dateOutput = default(DateTime);
DateTime.TryParse(TextBox1.Text, out dateOutput);
if (dateOutput != DateTime.MinValue)
{
string dateString = string.Empty;
if (TextBox2.Text == string.Empty && TextBox3.Text == string.Empty)
dateString = dateString = string.Format("{0} {1}:{2}", TextBox1.Text, DateTime.Now.Hour, DateTime.Now.Minute);
DateTime.TryParse(dateString, out dateOutput);
}
args.IsValid = (dateOutput != DateTime.MinValue);
}
我错过了什么或者可以改进吗?
答案 0 :(得分:0)
用户输入必须通过客户端脚本和服务器脚本进行验证。您可以选择customValidator
。您还可以通过处理onsubmit
<form/>
事件来验证输入
<script type="text/javascript">
function validateMyForm(){
//write code to validate user input.
if(!succeed)
return false;
return true;
}
</script>
<form id="form1" runat="server" onsubmit="return validateMyForm()">
...
</form>