2008-08-13 35 views
5

Tengo un control personalizado que implementa IPostBackEventHandler. Algunos eventos del lado del cliente invocan __doPostBack (controlID, eventArgs).RaisePostBackEvent no se activa

El control se implementa en dos controles de usuario diferentes. En un control, RaisePostBackEvent se activa en el lado del servidor cuando se invoca __doPostBack. En el otro control, RaisePostBackEvent nunca se invoca. Comprobé el parámetro __EVENTTARGET y coincide con el ClientID del control ... ¿en qué otro lugar podría buscar solucionar este problema?

Respuesta

1

Hay muchas maneras en que esto puede desmoronarse. ¿Está agregando el control a la página dinámicamente en el código? Si es así, muchas veces su UniqueID puede estar desactivado, aunque los ID del cliente sean iguales. ¿Tiene una muestra de código que pueda demostrar lo que está haciendo?

+0

(Trasladado a comentar) - Bueno, me siento un poco estúpido ... era una Problema simple: pensé que el UniqueID del control coincidía con __EVENTARGS, pero debido a algunos errores de JavaScript de mi parte, tenía un $ en el que debería haber estado el guión bajo. Fue un UniqueID extremadamente largo, tan fácil de pasar por alto. –

0

Comprueba que es una derivación de la clase UserControl, no del WebControl.
Este me ha sorprendido muchas veces. Si necesita usar WebControl para el diseño, debe permitir que su control implemente INamingContainer. (No se preocupe, es una interfaz de marcador)

Así que ..

public class MyControl : UserControl {} 

O

public class MyControl : WebControl, INamingContainer {} 
Cuestiones relacionadas