Avatar billede Mcoroklo Nybegynder
15. april 2010 - 21:27 Der er 1 løsning

Web User Control og Event

Jeg er i den situation hvor jeg har en Web User Control, CreateQuestion.ascx, i ASP.NET.
Her ønsker jeg at gøre det muligt for de sider som bruger denne control at abbonnere på et event jeg laver. Når der bliver klippet på en bestemt knap ønsker jeg eventet "QuestionAdded" bliver affyret.
Jeg ønsker IKKE at sende nogle bestemte data videre. Det handler kun om at vide hvornår knappen er blevet trykket.

MIN IMPLEMENTERING:

CreateQuestion.ascx:

    public event EventHandler QuestionAdded;

    protected virtual void OnQuestionAdded(EventArgs e)
    {
        if (QuestionAdded != null)
            QuestionAdded(this, e);
    }

    /// Dette er knappen jeg vil informeres om er blevet trykket
    protected void SubmitButton_Click(object sender, EventArgs e)
    {
        //question.Save();
        this.OnQuestionAdded(new EventArgs());
    }

På siden AnswerQuestion.aspx har jeg code behind som:

  private void SetupControls(int myId)
    {
        CreateQuestionControl.QuestionAdded += new EventHandler(QuestionAdded);
    }

    private void QuestionAdded(object sender, EventArgs e)
    {
        Response.Write("HEJ KARL?");
    }

MIT PROBLEM:
Lige meget hvad der sker, så bliver eventet aldrig aktiveret. Jeg ved at både SetupControls() bliver kørt, og at koden bag knappen som skulle affyre eventet bliver kørt.

Når jeg debugger kan jeg se at eventet "QuestionAdded" altid er NULL.

Hvordan gør jeg så det virker??

På forhånd,
MANGE tak! :-)
Avatar billede Mcoroklo Nybegynder
19. maj 2010 - 23:26 #1
Skulle løses med et init event på page_load.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester