Avatar billede mikkel_strack Nybegynder
16. oktober 2006 - 16:36 Der er 3 kommentarer og
1 løsning

Identificér UserControls

Jeg har forsøgt mig lidt med egne UserControls. I tilfældet under har jeg lavet en UC som består af et Panel, en Label og en TextBox.

Det virker for så vidt ok, men kan sgu ik finde ud af at tilgå dem siden.

For at illustrere hvad jeg mener, så tjek koden under. Når jeg gennemløber Controls og tjekker på om der findes nogen af typen UserControls, synes jeg jo at jeg burde finde én. Det gør jeg bare ikke.

Hvad er det jeg slet ikke har fattet? :o)

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

       
    }

    protected override void OnInit(EventArgs e)
    {
        Control c1 = LoadControl("TextBoxName.ascx");
        c1.ID = "UserControl1";
        ((TextBoxName)c1).Text("Fornavn");
        Panel1.Controls.Add(c1);


        Button B = new Button();
        B.Click += new EventHandler(Validate);
        Panel1.Controls.Add(B);

        base.OnInit(e);
    }


    public void Validate(object sender, EventArgs e)
    {
        bool found = false;

        foreach (Control C in form1.Controls)
        {
            if(C.GetType() == typeof(UserControl))
            {
                found = true;   
            }
        }
        Label1.Text = found.ToString();
    }
}
Avatar billede snepnet Nybegynder
18. oktober 2006 - 16:42 #1
Du tilføjer kontrollen til Panel1, så hvis du skal finde den igen på den måde du gør - skal du finde den i Panel1's control collection.
Men ellers ... Du kan jo bare sætte en klassevariabel op til at holde referencen i.
Og denne :
        foreach (Control C in form1.Controls)
        {
            if(C.GetType() == typeof(UserControl))
            {
                found = true;   
            }
        }

kan du skrive lidt enklere:
        foreach (Control C in form1.Controls)
        {
            if(C is UserControl)
            {
                found = true;   
            }
        }

Mvh
Avatar billede mikkel_strack Nybegynder
19. oktober 2006 - 19:23 #2
Det virker fint, så du smider bare et svar :)

Men hvordan kan det være at jeg ikke kan finde den i enten page.Controls eller form.Controls??
Avatar billede snepnet Nybegynder
22. oktober 2006 - 21:31 #3
Du får et svar her :o)
Hvis du ikke itererer iterativt over en given kontrol collection, vil du ikke finde kontroller i kontroller.
FindControl(kontrolid) kigger det hele igennem.
Mvh
Avatar billede snepnet Nybegynder
22. oktober 2006 - 21:32 #4
Og her kom der så et svar :o)
Mvh
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