Ik lees heel vaak topics hier op GoT over mensen die dynamisch willen includen.
Meestal krijg je brakke antwoorden als :
Doe het met if-jes. Nogal rot aangezien echt dynamisch includen er hier niet bij is!
Manier 2 is uiteraard de Server.execute methode! ook heel netjes en lijkt de oplossing te zijn... maar als snel kom je erachter dat je problemen krijgt, met variabelen van de uitvoerende pagina die je op de geinclude pagina wilt gebruiken. Dat is onmogelijk namelijk!
Nu weet ik niet of dit al bekend was onder de meesten hier maar ik wil het jullie toch mededelen (misschien handig voor in de faq)
Hier een oplossing om het vorige probleem te ontwijken!
Je opent met een Streamreader een bestand en leest dit uit en execute dit gewoon op de huidige pagina!
Je kunt nu dit doen:
Zie maar wat je met dit topic doet. ik wilde het gewoon even mededelen aangezien je hier nogal eens een topic over tegenkomt!
EDIT/ Nadelen zijn wel dat je VOLLEDIGE geinclude bestand asp moet zijn.
EDIT2/ Functies zijn ook beperkt aan te roepen!!!
Meestal krijg je brakke antwoorden als :
Doe het met if-jes. Nogal rot aangezien echt dynamisch includen er hier niet bij is!
Visual Basic:
1
2
3
4
5
| <% if var = 1 then %> <!--#include file="deze.asp" --> <% else %> <!--#include file="de_andere.asp" --> <% end if %> |
Manier 2 is uiteraard de Server.execute methode! ook heel netjes en lijkt de oplossing te zijn... maar als snel kom je erachter dat je problemen krijgt, met variabelen van de uitvoerende pagina die je op de geinclude pagina wilt gebruiken. Dat is onmogelijk namelijk!
Nu weet ik niet of dit al bekend was onder de meesten hier maar ik wil het jullie toch mededelen (misschien handig voor in de faq)
Hier een oplossing om het vorige probleem te ontwijken!
Je opent met een Streamreader een bestand en leest dit uit en execute dit gewoon op de huidige pagina!
Visual Basic:
1
2
3
4
| Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objFL = objFS.GetFile(absolute_path_of_file) Set objTS = objFL.OpenAsTextStream(1,0) Execute(objTS.Read(objFL.Size)) |
Je kunt nu dit doen:
Visual Basic:
Ik weet niet wat voor versie iis/asp je hier voor nodig hebt maar het werkt onder IIS5/ASP3.0 gewoon perfect!1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| page1.asp ----------------------------------- originalvar = "jaja kan dit ???" Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objFL = objFS.GetFile(server.MapPath(".") & "\page2.asp") Set objTS = objFL.OpenAsTextStream(1,0) Execute(objTS.Read(objFL.Size)) Response.write(var1) ----------------------------------- page2.asp ----------------------------------- var1 = "lalalalala WORKING!!" Response.Write(originalvar) ----------------------------------- output: ----------------------------------- jaja kan dit ???lalalalala WORKING!! ----------------------------------- |
Zie maar wat je met dit topic doet. ik wilde het gewoon even mededelen aangezien je hier nogal eens een topic over tegenkomt!
EDIT/ Nadelen zijn wel dat je VOLLEDIGE geinclude bestand asp moet zijn.
EDIT2/ Functies zijn ook beperkt aan te roepen!!!
[ Voor 14% gewijzigd door Mischa_NL op 11-04-2005 20:20 ]