Получить контроль источника в методе OnServerValidate - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть элемент управления CustomValidator, и в событии OnServerValidate я хочу установить свойства проверяемого элемента управления.

Можно подумать, что проверенный объект управления будет доступен в событии OnServerValidate, но это не так. Затем я попытался выполнить FindControl, но не могу получить доступ к значению ControlToValidate.

Может, кто-нибудь поможет мне проверить элемент управления TextBox, чтобы я мог изменить его свойства из события OnServerValidate?

Спасибо, D

Ответы [ 3 ]

7 голосов
/ 17 мая 2012

Я попробовал ответ выше, но так как мой TextBox был в ListView в ContentPlaceHolder, все вышло из-под контроля. В итоге я использовал это, которое должно работать при любых обстоятельствах:

string textBoxName = ((CustomValidator)source).ControlToValidate;
var textBox = ((CustomValidator)source).Parent.FindControl(textBoxName) as TextBox;
4 голосов
/ 11 ноября 2011

Можете ли вы сделать что-то подобное?

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
   }
}
1 голос
/ 17 сентября 2016

для получения значения:

string number = args.Value;
...