RaisePostBackEvent не стреляет

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

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

13.08.2008 04:30:30
2 ОТВЕТА
РЕШЕНИЕ

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

1
13.08.2008 04:45:06
(Перемещено, чтобы комментировать) - Ну, я чувствую себя немного глупо ... это была простая проблема - я думал, что UniqueID элемента управления соответствует __EVENTARGS, но из-за некоторой глупости JavaScript с моей стороны у него был один $, где подчеркивание должно было быть , Это был чрезвычайно длинный UniqueID, так что его легко не заметить.
Rex M 19.11.2012 02:35:36

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

Так..

public class MyControl : UserControl {}

Или

public class MyControl : WebControl, INamingContainer {}
0
13.08.2008 06:56:24