Avatar billede pablopablo Nybegynder
07. marts 2008 - 02:15 Der er 3 kommentarer

Materpage og event i contentpage

Hejsa...

Jeg har en imageButton på min masterpage...når brugeren klikker på denne skal jeg fange eventen på den contentpage jeg nu engang befinder mig på...dvs. hægte en eventhandler på de contentpages som jeg ønsker...men jeg kan ikke få adgang til click eventen fra masterpagen... fx. via:

((MasterPage)Master).MyImageBtn.Click findes ikke, alle andre events kan dog godt tilgåes... :( hhmm... HELP!

Mvh.

PabloPablo
Avatar billede crazysnap Seniormester
07. marts 2008 - 09:55 #1
Så det du i bund og grund vil er at have adgang til din MasterPage's server controls. Du kan gøre dette på flere måder:


1) Lave en property på din MasterPage for hver kontrol som returnerer kontrollen. F.eks:

  MasterPage kode:

  public Button MyImageButton
  {
      get { return MyImageBtn; }
  }

  ContentPage kode:

  ((MasterPage)Master).MyImageButton.Click += ....
 

2) Lave en property som assigner et event til din MyImageBtn. F.eks:

  MasterPage kode:

  public event EventHandler MyImageButtonClick
    {
        add { MyImageBtn.Click += value; }
        remove { MyImageBtn.Click -= value; }
    }

  ContentPage kode:

  ((MasterPage)Master).MyImageButtonClick += ....


3) Eller løber igennem din kontrollerne på din MasterPage og finder den specifikke kontrol. F.eks:

  ContentPage kode:

    Button btnImage = (Button)((MasterPage)Master).FindControl("MyImageBtn");
    btnImage.Click += ...


Håber det hjælper dig videre.

Mvh.
Snap
Avatar billede pablopablo Nybegynder
26. marts 2008 - 10:42 #2
Hej igen...sorry mit sene response...ingen af ovenstående eksempler virker da man ikke kan tilgå Click eventen? Har du selv fået det til at virke får med Click eventen...har mange gange før lavet properties tilgængelige fra masterpagen...men denne virker ikke til at man kan tilgå...?
Avatar billede crazysnap Seniormester
26. marts 2008 - 11:10 #3
Hej pablopablo,

No worries (hvad sene svar angår). Jeg er 100% sikker på at alle mine ovenstående eksempler virker. Jeg har endda lige testet (for en sikkerhedsskyld) den sidste metode (endda med en ImageButton):


Content page:

protected void Page_Load(object sender, EventArgs e)
{
    ImageButton btnImage = (ImageButton)((MasterPage)Master).FindControl("btnTest");
    btnImage.Click += new ImageClickEventHandler(btnImage_Click);
}

void btnImage_Click(object sender, ImageClickEventArgs e)
{
    throw new Exception("The method or operation is not implemented.");
}


Hvor der selvfølgelig er tilføjet en asp:ImageButton med id="btnTest" på masterpagen og det virker helt fint.

Jeg forstår faktisk ikke hvordan du ikke kan have adgang til Click event'en. Den returnerer jo et ImageButton object i Page_Load og den har ALTID en Click event?

Det tyder på der er noget andet galt hvis ovenstånede kode ikke virker hos dig.


Mvh.
Snap
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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