Avatar billede Slettet bruger
20. februar 2006 - 15:38 Der er 9 kommentarer og
1 løsning

Flere config filer med forskellige themes

Hejsa,

Jeg har en web-applikation, der er lagt ind i en anden web-applikation.
Jeg har oprettet den "inderste" applikation som en applikation i IIS og det virker fint nok.

Men, men. Jeg har så et problem med themes. Jeg forstår at den inderste web.config fil nedarver fra den i roden af websitet, og det betyder at jeg ikke kan specificere et theme til den inderste applikation uden at få en fejl.

Jeg kan på den anden side heller ikke benytte den config i roden. Er der en måde at overskrive pages themes på, uden at benytte = "".
Jeg skal jo benytte et theme.

P.S. På nuværende tidspunkt har jeg specificeret det i toppen af hver side, men det vil jeg helst gerne ud over ligesom jeg ikke vil benytte en Pre_Init i mine code-behind filer.
Avatar billede dr_chaos Nybegynder
20. februar 2006 - 18:08 #1
kan du lave en case sætning f.eks. i din masterpage som sætter pagethem alt efter hvilken en mappe du er i ?
Avatar billede Slettet bruger
20. februar 2006 - 20:23 #2
Kan du komme med et eksempel?
Avatar billede Slettet bruger
20. februar 2006 - 20:23 #3
Jeg kører med flere forskellige masterpages...
Avatar billede dr_chaos Nybegynder
20. februar 2006 - 20:54 #4
fandt lige denne post:
http://staff.develop.com/ballen/blog/PermaLink.aspx?guid=09befce7-f48e-4555-891c-13818fd75a56
så ingen mulighed for at sætte theme i masterpage :(

så der er kun web.config og preinit tilbage
Avatar billede dr_chaos Nybegynder
20. februar 2006 - 20:58 #5
havde ellers lavet en lille klasse som kunne bestemme theme alt efter en mappe:
  public static string DetermineTheme(string dir)
    {
        switch (dir)
        {
            case "/TI_KundeTilfredshed/Sporgeskema":
                {
                    return "TestTheme";
                }
            case "/TI_KundeTilfredshed/Bruger":
                {
                    return "TestTheme1";
                }
            default:
                {
                    return "TestTheme1";
                }
        }
    }

Du kan evt godt bruge funktionen.
Men kun i pre_init med
  string dir =Page.Request.Path.Remove(Page.Request.Path.LastIndexOf('/'));
      Page.Theme= Themes.DetermineTheme(dir);

hvor funktionen ligger i klasse kaldet themes
Avatar billede Slettet bruger
21. februar 2006 - 21:10 #6
Hejsa.
Tak for dit eksempel.
Jeg skal helst uden om PreInit. Ville gerne kunne køre det fra web.config da jeg på denne måde kun skal ændre tingene ét sted. Desuden er det 2 selvstændige applikationer.

Jeg er klar over at jeg kan lave en klasse der nedarver fra System.Web.UI.Page, men denne måde har vist sig at være ret iriterende under selve udviklingen af sitet, da jeg dermed er tvunget til at kompile hele sitet hver gang jeg laver en ændring på én side.
Avatar billede dr_chaos Nybegynder
21. februar 2006 - 21:28 #7
du har jo ingen mulighed for at komme uden om preinit hvis du vil have flere themes i nested webapps.

Ellers skal du flytte den en webapp ud af det ene dir.
Avatar billede Slettet bruger
23. februar 2006 - 22:34 #8
Jeg tænker lige over hvordan jeg vil lave det.
Jeg ville som sagt helst undgå det med preinit, men smid lige et svar for din løsning. Måske kan den alligevel bruges :-)
Avatar billede dr_chaos Nybegynder
24. februar 2006 - 08:51 #9
svar :)

skriv lige her hvis du løser problemet.
Avatar billede Slettet bruger
24. februar 2006 - 09:56 #10
Ok :-)
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