Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在OnServerValidate方法中获取源代码管理_C#_Asp.net_Validation_Customvalidator - Fatal编程技术网

C# 在OnServerValidate方法中获取源代码管理

C# 在OnServerValidate方法中获取源代码管理,c#,asp.net,validation,customvalidator,C#,Asp.net,Validation,Customvalidator,我有一个CustomValidator控件,在OnServerValidate事件中,我想设置正在验证的控件的属性 您可能认为已验证的控件对象在OnServerValidate事件中可用,但事实并非如此。然后,我尝试执行FindControl,但似乎无法访问ControlToValidate值 是否有人可以帮助我验证TextBox控件,以便我可以从OnServerValidate事件修改其属性 谢谢, 你能这样做吗 protected void CustomValidator1_ServerVa

我有一个CustomValidator控件,在OnServerValidate事件中,我想设置正在验证的控件的属性

您可能认为已验证的控件对象在OnServerValidate事件中可用,但事实并非如此。然后,我尝试执行FindControl,但似乎无法访问ControlToValidate值

是否有人可以帮助我验证TextBox控件,以便我可以从OnServerValidate事件修改其属性

谢谢,
你能这样做吗

protected void CustomValidator1_ServerValidate (object source, ServerValidateEventArgs args)
{
   var validationControl = source as CustomValidator;

   var textBox = FindControl(validationControl.ControlToValidate) as TextBox;

   if (textBox != null)
   {
      // Do something
   }
}

我尝试了上面的答案,但由于我的文本框位于内容占位符的列表视图中,所以一切都有点失控。我最终使用了这种在任何情况下都应该有效的方法:

string textBoxName = ((CustomValidator)source).ControlToValidate;
var textBox = ((CustomValidator)source).Parent.FindControl(textBoxName) as TextBox;
对于获取值:

string number = args.Value;

如果您知道正在验证的控件,为什么不能直接访问它?它是嵌套在数据绑定控件中还是什么?我正在尝试创建一个“通用”CustomValidator,即使它将被许多不同的控件使用。@JamesJohnson我也有同样的问题,我不能硬编码控件的原因是,我想对三个不同的字段使用相同的验证函数。虽然略有不同,但你做到了!!ContentPlaceHolder placeholder=Master.FindControl(“占位符内容”)作为ContentPlaceHolder;CustomValidator validationControl=源作为CustomValidator;TextBox TextBox=占位符.FindControl(validationControl.ControlToValidate)作为TextBox;如果(textBox!=null){}非常感谢您在这方面的帮助。