Avatar billede gadensgaard Nybegynder
03. november 2008 - 10:21 Der er 8 kommentarer og
1 løsning

Tjekke session før placeholder loades.

Jeg har lidt et problem som jeg ikke aner hvordan jeg skal løse.

Jeg har lavet en masterpage, med en placeholder hvori jeg gerne vil vise noget forskelligt om et project ud fra en parameter jeg har på session. Grunden til jeg har det på en masterpage er at jeg har flere forskellige sider, men de skal alle bruge session parameteren, bare til noget forskelligt.

Hvis der endnu ikke er valgt et projekt, og dermed ikke er skrevet noget til session skal der i stedet for info om projectet skrives "Intet project var valgt" eller noget tilsvarende (Altså en fejl der gør brugeren opmærksom på problemet).

Hvordan kan det løses programmeringsmæssigt? Jeg er IKKE interesseret i at have C# kode i aspx filen, jeg vil holde tingene adskilt, så en løsning skal laves i cs filen..
Avatar billede torotune Nybegynder
03. november 2008 - 23:46 #1
Kan du ikke have det stående i din codebehind til din masterPage? (MasterPage.master.cs) Her gør du så noget lignende i page_load:

{
    if ((session("ProjectID") != null)) {
    }
    //hent data ud fra ID'et gemt i din session
    else {
    }
    //lblInfo.Text = "Intet projekt er valgt"
}
Avatar billede torotune Nybegynder
03. november 2008 - 23:46 #2
(jeg kan ikke finde ud af at skrive C#) - men i det koncept =)
Avatar billede gadensgaard Nybegynder
04. november 2008 - 08:19 #3
Jo, men problemet ligger så i at jeg skal tjekke det for hver af mine filer hvor jeg skal bruge data ud fra ID'et, da det ikke er samme data jeg skal bruge på hver side. Men jeg vil lige arbejde videre med din ide og se om det fører til noget brugbart.

Hvis andre har et forslag er i stadig velkomne til at svare.
Avatar billede simsen Mester
04. november 2008 - 11:11 #4
Hmmmmm - hvis jeg har læst det du vil korrekt - så har torotune ret:

I din Page_Load på de forskellige sider gør du følgende:
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session("ProjectID") != null)
            {
                //Henter sessions projekt id
                int sessionid = Convert.ToInt32(Session("ProjectID"));

                //Her gør du så det du skal gøre - hente data ind til din side og vise det udfra hvad der står i session
            }
            else
            {
                //Her skriver du din fejlmeddelelse til en label du har sat på aspx siden
            }
        }
    }
Avatar billede torotune Nybegynder
04. november 2008 - 17:25 #5
Ja, du kan også bare oprette ovenstående ét sted i en klasse, som en Shared Function, og kalde den hver gang du skal bruge den. (ved ikke om det hedder Shared Function i C#)
Avatar billede gadensgaard Nybegynder
07. november 2008 - 22:40 #6
toro jeg arbejder videre med din ide. Smider du et svar?
Avatar billede torotune Nybegynder
10. november 2008 - 22:33 #7
Ok, men vil ikke have 200 for et ledende svar.. :-) Bare spørg mere hvis det er.
Avatar billede gadensgaard Nybegynder
10. november 2008 - 22:39 #8
Cool, jeg vender tilbage senere. Der er deadline 17/12 så når jeg komemr dertil skal der være fundet en løsning :). Du/I hører fra mig
Avatar billede gadensgaard Nybegynder
24. november 2008 - 17:31 #9
Jeg løste det ved at smide en label ind under placeholderen. Jeg tjekkede så session for projectId og hvis den var tom fjernede jeg placeholderen og skrev en fejl til den label. I mellemtiden er jeg løbet ind i at jeg også gerne vil tjekke for andre ting på andre sider så vil du forklare lidt nærmere om de shared functions? (Principperne bare - jeg er klar over du ikke kender til C#).
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



IT-JOB

Udviklings- og Forenklingsstyrelsen

Erfaren udvikler/DevOps til Integrationsplatforme

Euronext Securities

Software Developer

Udviklings- og Forenklingsstyrelsen

Scrum Master