2014-02-01 3 views
1

Я создал веб-форму программным образом с помощью ретранслятора asp.net, где один из элементов/полей является элементом управления MSCaptcha. На обратной передаче я хотел бы проверить captcha. Был изо всех сил пытаться получить к нему доступ, так как поле/контроль captcha находится внутри Repeater и this.FindControl («captchaid») возвращает null. Есть идеи?Подтверждение captcha (в ретрансляторе)

Кроме того, я могу получить доступ ко всем значениям формы, включая текст перехвата через Request.Form ["id поля"]. Что было бы неплохо, так это иметь возможность фактически проверять капчу, а не просто фиксировать значение.

+1

Вы пробовали http://msdn.microsoft.com/en-us/library/31hxzsdw(v=vs.110).aspx? – Yuck

+0

Да, я попробовал это ... попробовал button.Parent.FindControl ("captchaid"); результаты в нуле – xoail

ответ

3

Если вы используете this.FindControl (как указано), вы будете искать элементы управления на текущей странице или usercontrol, а не в элементе ретранслятора. Вам нужно будет перебрать элементы ретранслятора и выполнить FindControl в экземпляре RepeaterItem, пока не найдете свой контроль captcha. (Или google, чтобы найти реализацию FindControl, которая является рекурсивной, хотя я бы сказал, что это, вероятно, менее оптимально).

+0

Спасибо, что был отличный совет! – xoail

Смежные вопросы