On Sun, 24 Feb 2002 15:26:09 +0100, "Henrik" <h@enr.ik> wrote:
>
>Hvordan kan jeg gøre sådan, at hvis jeg loader filen vis.asp?id=1, indsættes
>include-filen 1.inc på et nærmere bestemt sted i filen (i en tabel)? Hvis
>id=2, skal filen 2.inc inkluderes etc....
Først skal du selvfølgelig hente nummeret med
Request.QueryString("id")
Dernæst har du flere muligheder:
1) Hvis det kun er få filer, og det er de samme filer hele tiden, kan
du bruge include:
<%
If id = 1 Then
%><!--#include file="1.inc"--><%
ElseIf id = 2 Then
%><!--#include file="2.inc"--><%
' -- Etc.
End If
%>
Ulempen ved denne model er, at include udføres *først*, når siden
loades - dvs. alle includes medtages, men kun dem der opfylder If'en
udføres.
Det er altså ikke særligt praktisk, hvis du har mange filer, eller
hvis det ikke er faste filer.
Include er mest velegnet til sidehoved/fod og andre indsættelser af
faste ting.
Mere om include:
<URL:
http://html.dk/tutorials/ssi/>
2) Du kan bruge FSO (FileSystemObject)
<URL:
http://html.dk/tutorials/asp/lektion14.asp>
+ lektion 15 og 16
FSO er fuldt programmerbar og er udmærket til at hente tekster (hvis
det fx er en artikeldatabase, hvor vis.asp skal vise artikler med et
bestemt nummer).
3) Du kan bruge Server.Transfer eller Server.Execute
(Forudsat din server understøtter det)
Server.Transfer("nyside.asp")
Server.Execute("nyside.asp")
Begge gør det, at de "hopper over på en anden side" og fortsætter
kodeafviklingen der. Forskellen er så, at Server.Execute vender
tilbage, hvor den kom fra, når den er færdig, mens Server.Transfer
ikke gør.
Se evt. mere her:
<URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/iiwacont.asp>
De er begge meget fleksible - men vær opmærksom på, at du *kan* få
sikkerhedsproblemer, hvis du lader din QueryString styre din
Server.Execute/transfer alt for direkte.
Good luck,
Jørn