Avatar billede llcoolj Nybegynder
23. september 2002 - 08:23 Der er 13 kommentarer og
1 løsning

Link til ny side

Jeg skal have startet en ny side ved klik på et undermenupunkt(Foreslå gerne hvilken type- bruger lige nu LinkButton). Problemet er at jeg ved klik på knappen skal have startet en ny side i en anden frame, men også at jeg skal lave en sessionsvariabel ved klik på knappen.
Meget gerne eksempler i C#.
Avatar billede odegaard Nybegynder
23. september 2002 - 08:55 #1
Det minder lidt om dette problem:
http://exp.dk/spm/259742
Avatar billede pelkjaer Nybegynder
23. september 2002 - 09:08 #2
Det er da muligt at jeg misforstår sp. men noget alá:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<script language="C#" runat=server>
void Session_Start(Object sender, EventArgs e)
  {
  Session["test"] = "Dette er en test session!";
  }
</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<asp:Linkbutton Font-Bold="true" Text="Undermenuer:" OnClick="Session_Start" runat="server"/>
<asp:Placeholder id="links" visible="true" runat="server">
<br />
<a href="side2.aspx" target="_self">link 1</a>
</asp:Placeholder>
</form>
</body>
</html>

og <%=Session["test"]%> i side2.asx
Avatar billede askhoej Praktikant
23. september 2002 - 09:15 #3
Og hvis du skal have kaldet til en anden frame med, så noget i denne her retning:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<script language="C#" runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
  test.Attributes.Add("onClick","java script:parent.MAINPAGE.window.location.href = 'din_fil.aspx';");
}
void Session_Start(Object sender, EventArgs e)
  {
  Session["test"] = "Dette er en test session!";
  }
</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<asp:Linkbutton id="test" Font-Bold="true" Text="Undermenuer:" OnClick="Session_Start" runat="server"/>
<asp:Placeholder id="links" visible="true" runat="server">
<br />
<a href="side2.aspx" target="_self">link 1</a>
</asp:Placeholder>
</form>
</body>
</html>
Avatar billede llcoolj Nybegynder
23. september 2002 - 09:16 #4
-> pelkjaer
Jeg er ikke så skarp i det her, men den linkbutton du laver, er vel ikke selve linket videre til side 2?
Jeg skal have noget hvor sessionsvariablen bliver oprettet når man trykker på "link 1" i menuen samtidigt med at side 2 åbnes i en anden frame.

men tak for eksemplet- det hjælper meget når man ikke er så skarp...
Avatar billede pelkjaer Nybegynder
23. september 2002 - 09:23 #5
Næ, linkbutton'en er din "hovedmenupunkt" - du sagde jo "ved klik på en undermenu".
Avatar billede odegaard Nybegynder
23. september 2002 - 09:23 #6
Så må du sætte din session-variabel fra side2.
ASP.NET er baseret på postback til samme side.
Avatar billede odegaard Nybegynder
23. september 2002 - 09:38 #7
Lige en side-tanke... Har du overvejet at glemme alt om frames? Der er så mange negative sider ved det, og nu hvor du kan opdele delene af dine sider i objekter, så er det faktisk utrolig nemt at overskue det samme lavet i tables.
Basalt går det ud på f.eks. at lave din menu og topbar om til usercontrols, som du så smider ind i en table. Det er meget lidt omskrivning, større fleksibilitet, mere kontrol af output i forskellige browsere/skærmopløsninger, og ikke mindst så slipper du for disse åndsvage problemer så du kan udnytte ASP.NET fuldt ud, uden krumspring.
Avatar billede llcoolj Nybegynder
23. september 2002 - 10:19 #8
-> askhoej - kanon eksempel, men jeg har blot det problem som odegaard beskriver.

-> odegaard - første omgang ville jeg meget gerne undgå at se bort fra frames, så derfor vil jeg gerne vide hvordan jeg kan sætte sessionsvariablen fra næste side da den skal sættes afhængig af hvilket link der er trykket på. skriv gerne hvordan hvis det er muligt.

Evt. hvis det ikke er muligt- kan du så vise eks. på hvordann noget lign. ville være opbygget som usercontrols i tables?
Avatar billede llcoolj Nybegynder
23. september 2002 - 10:26 #9
Ups -> odegaard- hvis du kan hjælpe mig til hvordan jeg løser mit problem med at huske mine sessionsvariabler på andre sider i andre frames er der point at hente på dette spørgsmål: http://www.eksperten.dk/spm/260308
Avatar billede odegaard Nybegynder
23. september 2002 - 10:38 #10
Jeg troede jeg havde skrevet hvad du skulle gøre, men jeg skal der gerne uddybe. Du skal sætte værdien i side to. Du kan ikke gøre det fra side 1, da du ikke vil have den til at lave postback.
Istedet må du lave et link der f.eks. indeholder en querystring til side 2:
<a href="side2.aspx?var=værdi" target="frame2">side 2</a>

og på side2.aspx:
    Sub Page_load(obj as Object, E as EventArgs)
        Session("var") = Request.Querystring("var")
    End Sub
Avatar billede llcoolj Nybegynder
23. september 2002 - 12:23 #11
-> odegaard
jeg får fejl på Request.Querystring("var") - er det noget med at det ikke er c#.
Følgende fejlkode: CS0117: 'System.Web.HttpRequest' does not contain a definition for 'Querystring'
Avatar billede llcoolj Nybegynder
23. september 2002 - 14:55 #12
-> odegaard.... smut lige ind på ovenstående spg. så får du de point som tak for hjælpen....
Avatar billede askhoej Praktikant
23. september 2002 - 15:03 #13
Har du ikke fået løst ovenstående spg.? - du kan frit oprette et nyt spg. og henvise til dette.
Avatar billede odegaard Nybegynder
23. september 2002 - 23:57 #14
Sorry. Det skal være Request.QueryString (stort 's'). Jeg er jo mest til VB, så jeg undskylder for at jeg ikke lige fik lavet C#-kode. Men mon ikke du kan hitte ud af at omskrive det? :-)
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