RaisePostBackEvent не срабатывает
Вопрос
У меня есть собственный элемент управления, реализующий IPostBackEventHandler.Некоторые события на стороне клиента вызывают __doPostBack(controlID, eventArgs).
Управление реализовано в двух различных пользовательских элементах управления.В одном элементе управления RaisePostBackEvent запускается на стороне сервера, когда __doPostBack
вызывается.В другом элементе управления RaisePostBackEvent никогда не вызывается.Я проверил __EVENTTARGET
параметр, и он соответствует ClientID элемента управления...где еще я могу найти решение этой проблемы?
Решение
Есть много способов, которыми это может развалиться.Добавляете ли вы элемент управления на страницу динамически в коде?Если это так, то ваш UniqueID может быть отключен много раз, даже если идентификаторы клиента одинаковы.Есть ли у вас образец кода, который может продемонстрировать, что вы делаете?
Другие советы
Дважды проверьте, что это действительно производное от класса UserControl, а не от WebControl.
Этот случай много раз меня удивлял.Если вам нужно использовать WebControl для стилизации, вам нужно разрешить вашему элементу управления реализовать INamingContainer.(Не волнуйтесь, это маркерный интерфейс)
Так..
public class MyControl : UserControl {}
Или
public class MyControl : WebControl, INamingContainer {}