[ASP.NET] Custom control vinden op masterpage

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Hallo,

Ik heb een masterpage met daarop 3 custom controls.

Nu probeer ik vanuit mijn pagina die controls te vinden in de control collection.
Ze lijken echter niet te bestaan in de controlcollection.

voorbeeld:

OnInit event van page:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
 ControlCollection coll = this.Controls;

        foreach (Control c in coll)
        {
            MasterPage m = (MasterPage)c;

           ControlCollection coll2 =  m.Controls;

            foreach (Control c2 in coll2)
            {
               Response.Write("<li>" + c2.ToString() + "</li>");
           }
       }


dit levert op:
System.Web.UI.LiteralControl
System.Web.UI.HtmlControls.HtmlHead
System.Web.UI.LiteralControl
System.Web.UI.HtmlControls.HtmlForm
System.Web.UI.LiteralControl

Ik bedacht me toen dat ik misschien in de NamingContainer van de masterpage moest gaan zoeken:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
ControlCollection coll = this.Controls;

        foreach (Control c in coll)
        {
            MasterPage m = (MasterPage)c;

           ControlCollection coll2 =  m.NamingContainer.Controls;

            foreach (Control c2 in coll2)
            {
               Response.Write("<li>" + c2.ToString() + "</li>");
           }
       }


Dit levert echter ASP.templates_contentpage_master op.

Roep ik echter een findControl aan:

C#:
1
CCI.SimpleTextControl simple = (CCI.SimpleTextControl)m.FindControl("text1");


Dan wordt hij wel gevonden. Ik wil echter Dynamisch bepalen welke controls op mijn masterpage staan. Kan dit? Waarom werkt dit niet?

Alvast bedankt!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Ik heb het al gevonden :)

De controls zitten niet op de masterpage maar in de Page.Form.Controls.

Een beetje vreemd aangezien mijn masterpage de form bevat en niet mijn Page.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

edit

[ Voor 87% gewijzigd door giMoz op 29-09-2006 10:33 . Reden: onzin verwijderd, heeft er nix mee te maken excuus ]

Of niet natuurlijk...


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
4of9 schreef op vrijdag 29 september 2006 @ 10:27:
Ik heb het al gevonden :)

De controls zitten niet op de masterpage maar in de Page.Form.Controls.

Een beetje vreemd aangezien mijn masterpage de form bevat en niet mijn Page.
Is niet vreemd, lees onderstaand artikel maar eens door.
ASP.Net 2.0 - Master Pages: Tips, Tricks, and Traps

It’s nice to be important but it’s more important to be nice


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Ik had hem ook gevonden idd.

Erg handige pagina als je met masterpages aan de slag gaat!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...