RaisePostBackEvent не запускается

У меня есть настраиваемый элемент управления, реализующий IPostBackEventHandler. Некоторые клиентские события вызывают __doPostBack (controlID, eventArgs).

Управление реализовано в двух различных пользовательских элементах управления. В одном элементе управления RaisePostBackEvent запускается на стороне сервера при __doPostBack вызове. В другом элементе управления RaisePostBackEvent никогда не вызывается. Я проверил __EVENTTARGET параметр, и он соответствует идентификатору ClientID элемента управления ... где еще я мог бы искать, чтобы устранить эту неполадку?

Ответов (2)

Решение

Есть много способов, по которым это может развалиться. Вы добавляете элемент управления на страницу динамически в коде позади? Если это так, в большинстве случаев ваш UniqueID может быть отключен, даже если идентификаторы клиентов равны. У вас есть образец кода, который может продемонстрировать, что вы делаете?

Дважды проверьте, действительно ли это производное от класса UserControl, а не от класса WebControl.
Этот много раз меня удивлял. Если вам нужно использовать WebControl для стилизации, вы должны позволить вашему элементу управления реализовать INamingContainer. (Не волнуйтесь, это интерфейс маркера)

Так..

public class MyControl : UserControl {}

Или

public class MyControl : WebControl, INamingContainer {}