Avatar billede lasserasch Juniormester
22. september 2008 - 15:55 Der er 4 kommentarer

Hvordan tilføjes Usercontrols dynamisk til en placeholder?

Hejsa.

Jeg leger lidt med placeholders lige nu og har et spørgsmål hertil.

Jeg har en meget simpel løsning lige nu.

1 stk aspx side
1 stk ascs side.

På min aspx side her jeg nogle faste kontroller såsom en topmenu mv.

Derudover har jeg placeret en Placeholder som jeg har givet navnet "Content".

Jeg vil nu gerne dynamisk tilføje et usercontrol til denne placeholder alt efter hvilket punkt i topmenuen der vælges.

Pt kan jeg godt få den til at vise mit usercontrol, men jeg kan ikke få den til at gemme det. Ved postback forsvinder mit usercontrol fra aspx siden igen.

Nogle som kan forklare hvad jeg gør galt?

Koden til aspx siden er vist herunder...

Mvh.
Lasse



-----------

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

        }

        protected void RadMenu1_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
        {
            if (e.Item.Value == "1")
            {
                Control UC = LoadControl("RecieverList.ascx");
                Content.Controls.Add(UC);
            }
        }
    }
-----------
Avatar billede kalp Novice
22. september 2008 - 18:30 #1
På ASPX siden plejer jeg i toppen og tilføje

<%@ Reference Control="~/USERCONTROLNAVN.ascx" %>

og i min kode tilføjer jeg den dynamisk via.

USERCONTROLNAVN blahblah = (USERCONTROLNAVN)Page.LoadControl("USERCONTROLNAVN.ascx");

placeholder.Controls.Add(blahblah);
Avatar billede lasserasch Juniormester
22. september 2008 - 22:01 #2
Hej kalp.

Tak for svaret....

Jeg læste mig senere til på nettet at når usercontrols tilføjes dynamisk i runtime, så vil de altid forsvinde ved postback.

Folk skrev 3 løsninger.

1. Den som du også giver her.
2. At lægge alle ens usercontrols på formen i designtime og sætte visible = false. Og så skifte til true for den usercontrol man gerne vil have vist.
3. Et eller andet med at man kan genskabe dem igen i Page_Load eventet.

Den sidst nævnte forstår jeg ikke helt, men jeg tror det er den vej jeg bør gå. Mit eksempel var bare for at se om jeg kunne få det til at virke. Det jeg i sidste ende gerne vil opnå, er at kunne oprette et usercontrol og så ud fra værdien af en SQL database record kunne tilføje den korrekte usercontrol til en bestemt placeholder.

Det skal bruges til at lavet noget simpelt CMS styring af et website.

Men som sagt så kan jeg ikke hitte ud af hvad det er man skal i Page_Load eventet for at genopretter kontrollerne og hvordan man generelt skulle styre dette.

Mvh.
LAsse
Avatar billede kalp Novice
23. september 2008 - 07:13 #3
Jeg kan se jeg faktisk gør det pr. Request.
Dvs. du skal tilføje din usercontrol igen ved postback.
Du bliver nød til, og ligge noget logik ind i din Page load i if(IsPostBack) som kan genskabe dine usercontrols.

Hvis du ikke lavere redirect og dermed kan anvende URL parametre kan du tilføje værdier til din  ASPX side i HiddenFields, anvende Session, Cookies eller lignende:)
Der er mange muligheder.
Avatar billede lasserasch Juniormester
11. oktober 2010 - 21:24 #4
smid svar for points så vi kan få lukket
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