Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 11:38 Der er 14 kommentarer og
2 løsninger

Aflæsning af querystring via kode

Jeg har en webside som består af en HTML tabel. I venstre celle har jeg en række links, der sætter en querystring ID (Default.aspx?ID=2) afhængig af, hvad der skal vises i højre celle. I højre celle har jeg indlagt en includefil og denne havde jeg tiltænkt skulle vise celleindhold afhængigt af, hvad der var klikket i venstre celle, men hvordan aflæser jeg ID nummeret via kode i includefilen? Denne metode virker fint i almindelig ASP, men er det også den rigtige metode i ASP.NET? Den synes at ville indsætte programsprogsoplysning selv i includefilen, men det må jo ikke forekomme to gange.
Avatar billede a1a1 Novice
28. november 2004 - 12:23 #1
include filer er ikke "smart" at bruge

i stedet for at have f.eks. 5 forskellige includes ligger du alt i en fil (eller evt. en usercontrol / class fil) hvor du så vælger efter querystringen hvad du vil vise..

det tager lidt længere tid at loade siden første gang men, forskellen på asp.net og alm. asp er at asp.net "husker" hvad der kompiles (maskinkode), og alm. asp kompiler dit script hver gang

;o)
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 12:30 #2
Min tanke var ikke at have mange includefiler, men blot en enkelt som du nævner, men spørgsmålet er stadig, hvordan man i denne fil aflæser querystringen?

Web Matrix bliver ved med selv at indsætte <%@ Page Language="VB" %> i includefilen, som så fejler - ved du, hvorfor den går det af sig selv?
Avatar billede a1a1 Novice
28. november 2004 - 13:29 #3
du skal kun have en fil eller som jeg skrev ovenover lave dem til classes eller evt. usercontrols, som du så bruger på siden
Avatar billede basementjack Nybegynder
28. november 2004 - 14:03 #4
Man kan ikke include en aspx på aspx side.. Det skal være en plain tekstfil eller en usercontrol, hvor en usercontrol er mest normalt. Hvis det er alm. tekst og ikke har kode med sig, kan det godt betale sig at include en tekst-fil.

vb - codebehind (usercontrol) :
    Public Sub Page_Load
        Dim query As String
        query = cStr(Request.QueryString("page"))
        Select Case (query)
            Case "Nyheder":
            content.controls.add(LoadControl("pages/nyheder.ascx"))
                End Case
        End Sub

vb - codebehind (include) :
    Public Sub Page_Load
        Dim filepath As String = Server.Mappath("pages/ting.inc")
        Dim sR As IO.StreamReader
        sR = IO.File.OpenText(filepath)
        Dim theText As String = sR.ReadToEnd()
        Dim html As New Literal
        html.Text = theText
        myPlaceHolder.controls.add(html)
        sR.Close()
    End Sub
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 14:38 #5
Dette kan man, så vidt jeg kan se (codebehind), ikke lave i Web Matrix, men kan man bruge userconrol i Web Matrix? Undskyld hvis det er et banalt spørgsmål, men jeg er absolut på indlæringskurven til ASP.NET.
Avatar billede basementjack Nybegynder
28. november 2004 - 14:43 #6
include sådan her...

<%@ Page Language="VB" %>

<script runat="server">

    Sub Page_Load()
        Dim filepath As String = Server.Mappath("pages/ting.inc")
        Dim sR As IO.StreamReader
        sR = IO.File.OpenText(filepath)
        Dim theText As String = sR.ReadToEnd()
        Dim html As New Literal
        html.Text = theText
        myPlaceHolder.controls.add(html)
        sR.Close()
    End Sub

</script>
<html>
    <head>
    </head>
    <body>
        <form runat="server">
          <asp:PlaceHolder id="myPlaceHolder" runat="server"></asp:PlaceHolder>
        </form>
    </body>
</html>
Avatar billede basementjack Nybegynder
28. november 2004 - 14:45 #7
usercontrols sådan her...

<%@ Page Language="VB" %>

<script runat="server">

    Sub Page_Load()
        Dim query As String
        query = cStr(Request.QueryString("page"))
        Select Case (query)
            Case "Nyheder":
                content.controls.add(LoadControl("pages/nyheder.ascx"))
            End Case
    End Sub

</script>
<html>
    <head>
    </head>
    <body>
        <form runat="server">
          <asp:PlaceHolder id="content" runat="server"></asp:PlaceHolder>
        </form>
    </body>
</html>
Avatar billede basementjack Nybegynder
28. november 2004 - 14:47 #8
Hvis du vil have uddybet noget, så siger du bare til..
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 14:50 #9
Mange tak for udførlige svar - jeg vil afprøve! Hvordan laver man mest hensigtsmæssigt, at klik på et link i venstre side, viser det rigtige indhold i placeholderen i højre side? Eksempelvis:

1. Vis kunder
2. Vis betalinger
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 14:52 #10
Kan man lave alt det ovennævnte i ASP.NET Web Matrix?
Avatar billede basementjack Nybegynder
28. november 2004 - 14:55 #11
venstre side :

<a href="?page=VisKunder">Vis Kunder</a>
<a href="?page=VisBetalinger">Vis Betalinger</a>

højre side :

<asp:PlaceHolder id="rightSide" runat="server"></asp:PlaceHolder>

kode i toppen :

<script runat="server">

    Sub Page_Load()
        Dim query As String
        query = cStr(Request.QueryString("page"))
        Select Case (query)
            Case "VisKunder":
                rightSide.controls.add(LoadControl("pages/visKunder.ascx"))
            Case "VisBetalinger":
                rightSide.controls.add(LoadControl("pages/visBetalinger.ascx"))
            End Case
    End Sub

</script>
Avatar billede basementjack Nybegynder
28. november 2004 - 15:05 #12
Ja.. Man skal lave det hele i Webmatrix eller notepad, hvis det er det man har lyst til.. :)
Avatar billede basementjack Nybegynder
28. november 2004 - 15:25 #13
Får du det til at virke?..
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 16:01 #14
Jeg har ikke lejlighed til det lige nu, men jeg prøver senere i dag!
Avatar billede Kim Neesgaard Seniormester
28. november 2004 - 19:00 #15
Hold da k.....!!! Det virker perfekt - du har jo bragt mig 'lysår' fremad!! Kan man så bare bygge forms op med kontroller, databasekald og andet godt i .ascx-filerne?
Avatar billede basementjack Nybegynder
28. november 2004 - 20:43 #16
Ja de virker lige som .aspx filer udover at deres topdirektiv hedder <%@ Control Language="VB" %> og at de naturligvis ikke skal have al html kode, altså kun der skal til for at det kontrollen skal bruges til.
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