9
votes

EventHandler est null

J'essaie d'élever un événement de clic à partir du contrôle de l'utilisateur et de la gérer sur la page contenant. Le problème que j'ai est, lorsque je clique sur le bouton "imgstep1" sur le contrôle de l'utilisateur, le code derrière Imgstep1_click Déclenchers d'événement et l'événement "BTNHANDLER" est toujours NULL. Par conséquent, cela n'appelle pas l'événement parent.

Toute aide à ce sujet sera très appréciée. P>

Mon code de contrôle de l'utilisateur est le suivant: p>

.Acx Code: P>

protected void Page_Load(object sender, EventArgs e)
{
     ucStepHdr.btnHandler += new StepsHeader.OnImageButtonClick(ucStepHdr_btnHandler);
}

void ucStepHdr_btnHandler()
{
  Response.Write ('test');
}


1 commentaires

Est-ce l'ensemble du code, ou est-ce que "+ = nouvelle ..." ligne à l'intérieur d'un type de bloc "si rechargé" typique?


3 Réponses :


0
votes

On dirait que cela devrait fonctionner ... Pouvez-vous parcourir le code dans le débogueur et voir quelle est la valeur de ucstephdr.btnhandler dès que vous l'avez définie dans la page_LOAD? (Juste un côté, traditionnellement, ceux-ci sont définis dans Init plutôt que de charger, mais ce n'est pas votre problème.)


0 commentaires

11
votes

Le code semble assez simple pour fonctionner correctement. La seule raison pour laquelle BTnhandler est NULL pourrait être car le code d'enregistrement de l'événement de la page ASPX n'est pas appelé.

Y a-t-il un post retour? Êtes-vous sûr que vous ajoutez l'événement à chaque fois que la page se charge ??? xxx


1 commentaires

Oui! C'était le problème. Je l'appelais avec le code (! Ispostback). Une fois que j'ai mis le code à l'extérieur, il a commencé à travailler. Merci gars pour toutes vos réponses.



1
votes

Si vous supprimez onclick = "imgstep1_click" code> et que vous l'avez mis dans votre ASCX.CS

protected ImageButton imgstep1;

protected override void OnInit(EventArgs e)
{
    this.imgstep1.Click += new ImageClickEventHandler(imgstep1_Click);
}


0 commentaires