Toon posts:

[ASP.NET] #include

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik maak in mijn ASP.NET pagina veelvuldig gebruik van includes, nu wil ik een variabele include doen aan de hand van parameters.

De code is goed, maar hij wordt niet uitgevoerd? (dus zal wel niet goed zijn :+ )

Voorbeeld van een "normale" werkende include:
code:
1
<!--#include file="modules/code/iframe_request.aspx"-->

Deze staat dus gewoon midden in de HTML en werkt als een speer.

Nu wil ik op een andere pagina hetzelfde doen maar dan met een variabele die via de url is meegepost.

Doorpasen van de "page" variabele
code:
1
2
3
4
<IFRAME src="iframe_request.aspx?page=main_blok" width="100%" 
height="100%" frameborder="0">
    <!--#include file="main_blok.aspx"-->
</IFRAME>


ophalen vd parameter
code:
1
2
3
4
5
6
7
<script runat="server">
'Plaats hier de benodigde code voor deze pagina
    dim page as String
sub page_load( o as object, e as eventargs)
    page = request.params("page")
end sub
</script>


Bouwen vd include met parameter
code:
1
<%  response.write("<!--#include file=modules/main/" & page & ".aspx-->") %>


Als ik een response.write( page ) doe dan print hij netjes main_blok, dus de parameter wordt goed meegegeven.
Maar als ik de bovenstaande include uitvoer krijg ik niets te zien, geen error dat er iets mis is met de response.write of met de include. Hij laad gewoon nix :(

Iemand enig idee wat er mis gaat??

Verwijderd

Verwijderd schreef op 30 oktober 2002 @ 11:45:
Ik maak in mijn ASP.NET pagina veelvuldig gebruik van includes
Waarom? |:(
Ik dacht eerst dat dit over ASP ging, maar toen ik nog eens goed las, zag ik dat je 't toch echt over .NET hebt...

Je hebt toch helemaal geen #include meer nodig in .NET? Volgens mij denk je nog veel te procedureel, terwijl je in een OO (object oriented) omgeving zit. :)

Wat wil je precies bereiken met die #include?

Verwijderd

dit kan inderdaad niet, de includes die je gebruikt zijn preprocessor commando's, dus worden ze eerst uitgevoerd en dan gaat pas de asp engine er overheen.
hij wil dus het bestand: <!--#include file=modules/main/" & page & ".aspx--> includen.. en die bestaat niet
dus dan houd t op
er is niet echt een oplossing voor zover ik weet

Verwijderd

Topicstarter
ik wil de pagina's zeer flexibel houden, ik heb de pagina opgebouwd uit uitsluitend tabellen.
Waar nodig kan nu heel makkelijk een blok worden toegevoegd en is de code in blokken opgedeeld. Dit maakt het programmeren makkelijker, voornamelijk omdat we er met meerdere personenen aan werken.

Je hoeft nu slechts naar de directory te gaan die je nodig hebt en daarin vind je dan een of meerder aspx files die de code bevatten die je nodig hebt om de pagina aan te passen.

Ik ben nu bijna klaar met het bouwen van de tabel structuur, dit is de enige nasty include

Verwijderd

Topicstarter
dit kan inderdaad niet, de includes die je gebruikt zijn preprocessor commando's, dus worden ze eerst uitgevoerd en dan gaat pas de asp engine er overheen.
hij wil dus het bestand: <!--#include file=modules/main/" & page & ".aspx--> includen.. en die bestaat niet
dus dan houd t op
er is niet echt een oplossing voor zover ik weet
Ben ik gedeeltelijk met je eens.
Ik denk dat hij na de eerste uitvoer dit in de html code zet:
<!--#include file=modules/main/main_blok.aspx-->

en dat deze dan niet alsnog wordt uitgevoerd....
Hier moet toch een truuk voor zijn?!?

  • oZy
  • Registratie: Juli 2001
  • Laatst online: 16:38

oZy

als je, zoals Puckly al zei, procedureel wilt blijven werken, gebruik dan ASP 3.0 ipv ASP.NET.

Daar kan je de conditionele includes bewerkstellingen dmv Server.Execute ipv een SSI.

De gedachtengang achter ASP.NET is heel anders, bekijk de vele voorbeelden maar op got, msdn, internet!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Verwijderd schreef op 30 oktober 2002 @ 12:09:
[...]


Ben ik gedeeltelijk met je eens.
Ik denk dat hij na de eerste uitvoer dit in de html code zet:
<!--#include file=modules/main/main_blok.aspx-->

en dat deze dan niet alsnog wordt uitgevoerd....
Hier moet toch een truuk voor zijn?!?
Jawel, je moet geen WebForm, maar een WebControl aanmaken.

Dan krijg je zoiets als:
<asp:mainblock id="MainBlock" runat="server" />

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
oZy er zitten nog 0,0 objecten in de opzet tot nu toe!
de objecten worden pas toegevoegd en gebruikt als we echt gaan programmeren.
dan komen de forms, buttons en weet ik niet wat allemaal voor moois in actie

Dit is alleen maar de opzet van de pagina!!

Verwijderd

Verwijderd schreef op 30 oktober 2002 @ 12:32:
oZy er zitten nog 0,0 objecten in de opzet tot nu toe!
de objecten worden pas toegevoegd en gebruikt als we echt gaan programmeren.
dan komen de forms, buttons en weet ik niet wat allemaal voor moois in actie

Dit is alleen maar de opzet van de pagina!!
0,0 objecten? Nogmaals dan de vraag waarom je in .NET programmeert en niet "gewoon" in ASP 3.0, zoals is voorgesteld. En in dat geval kun je dan idd nog beter van Server.Execute gebruiken maken dan van een SSI.

Je kunt met Visual Studio.NET bijna net zo eenvoudig een webapplicatie maken als een windows app. Maar als ik je nu goed begrijp, gebruik je (nog) niets van al het moois dat .NET je te bieden hebt? De (asp:)controls (labels, buttons en dergelijke) zijn nu namelijk OOK allemaal objecten, als je 't goed doet.

Volgens mij zou je toch echt ff moeten denken over een andere opzet van je pagina. Zeker omdat je er met meerdere personen aan werkt en je nu nog aan het begin van het project zit, is het nu nog eenvoudig om of te switchen naar ASP 3.0 of echt goed .NET-technieken te gaan gebruiken.
:)

Denk bijvoorbeeld ook eens aan het Placeholder-object.

Verwijderd

Topicstarter
De (asp:)controls (labels, buttons en dergelijke) zijn nu namelijk OOK allemaal objecten, als je 't goed doet.
De webpagina is nu nog 100% leeg en uiteraard gaan we straks met al het moois wat ASP.NET te bieden heeft aan de gang (voor zover wij kunnen).
<asp:Label id="lbVNaam" runat="server" ForeColor="Red"></asp:Label> ed komt er uiteraard allemaal in.

Ik maak nu alleen nog maar de opzet.
Tevens zoals je vast wel hebt gemerkt ben ik ASP.NET n00b en een fanatiek PHP aanhanger, maar voor dit project zijn we min of meer gedwongen asp.net te gebruiken.

leerzaam doch ingewikkeld :o

Verwijderd

Verwijderd schreef op 30 oktober 2002 @ 13:03:
Ik maak nu alleen nog maar de opzet.
Misschien moet je dan toch nog maar ff uitleggen wat die opzet precies moet doen? :)

Want een #include...
- is bedoeld als een SSI (server side include);
- is een preprocessor-statement;
- wordt op de server geprocessed (en 't heeft dus geen enkel nut om die tussen een response.write te zetten :))

Verder zou je in principe nergens meer in je code Response.Write hoeven te gebruiken...

Verwijderd

Topicstarter
- is een preprocessor-statement;
precies daarvoor gaan we het gebruiken!
De index.aspx wordt als het ware in elkaar geregen als een ketting.

Alle "hoofdpagina's" bestaan uit een x-tal includes, die tijdens de preprocessing in elkaar worden gehangen. Zo blijven alle tabellen fysiek van elkaar gescheiden en zijn dus zeer gemakkelijk te beheren vanuit 1 plek.
Dit geld ook voor de code subs enz enz.
- wordt op de server geprocessed (en 't heeft dus geen enkel nut om die tussen een response.write te zetten )

Verder zou je in principe nergens meer in je code Response.Write hoeven te gebruiken...
Helemaal mee eens! de respons.write komt een beetje uit het php tijdperk.
ik gebruik nu de server.execute, niet heel fraai maar het werkt :(
(we doen deze wazige variable execute omdat we een deel met en zonder iframes hebben. ivm browser versies)

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 30 oktober 2002 @ 13:28:
[...]


precies daarvoor gaan we het gebruiken!
De index.aspx wordt als het ware in elkaar geregen als een ketting.

Alle "hoofdpagina's" bestaan uit een x-tal includes, die tijdens de preprocessing in elkaar worden gehangen. Zo blijven alle tabellen fysiek van elkaar gescheiden en zijn dus zeer gemakkelijk te beheren vanuit 1 plek.
Dit geld ook voor de code subs enz enz.


[...]


Helemaal mee eens! de respons.write komt een beetje uit het php tijdperk.
ik gebruik nu de server.execute, niet heel fraai maar het werkt :(
(we doen deze wazige variable execute omdat we een deel met en zonder iframes hebben. ivm browser versies)
zoals al eerder geschreven is moet je om je tabellen apart te houden geen includes gebruiken maar UserControls. Dit worden daarna allemaal aparte .cs files of .ascx met daarachter nog .cs files. Dan is alles compleet gescheiden en zou je zelfs in je code nog controls toe kunnen voegen. Een aspx is echt bedoelt als laatste beetje layout.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 30 oktober 2002 @ 13:28:
[...]

Helemaal mee eens! de respons.write komt een beetje uit het php tijdperk.
ik gebruik nu de server.execute, niet heel fraai maar het werkt :(
(we doen deze wazige variable execute omdat we een deel met en zonder iframes hebben. ivm browser versies)
:? Waarom? Je kan toch Request.Browser en dan dan een Page.LoadControl uitvoeren?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Verwijderd schreef op 30 oktober 2002 @ 13:28:
omdat we een deel met en zonder iframes hebben. ivm browser versies)
:) Het mooie van het .NET-framework is nu juist dat je (bijna) browser-onafhankelijk kunt programmeren! Je programmeert de verschillende controls en de server zoekt wel uit welke html hij moet uitspugen voor welke browser...
edit:
Ik reageerde dus op wat gorgi_19 hierboven ook al aangaf. Hoewel dat maar enkele van de vele voorbeelden en mogelijkheden zijn die je kunt gebruiken!


/me is iets te optimistisch ;)
offtopic:
Ik werk nu bijvoorbeeld met het TreeControl van Microsoft en die werkt zelfs onder IE4!

... Ik had me nog zo voorgenomen niet meer op dit topic te reageren, omdat je naar mijn idee echt voor een verkeerde aanpak gekozen hebt en dat jammer genoeg niet in wilt zien ...


Conclusie: Schrap de #include als je ASP.NET gebruikt... :)

Verwijderd

Topicstarter
... Ik had me nog zo voorgenomen niet meer op dit topic te reageren, omdat je naar mijn idee echt voor een verkeerde aanpak gekozen hebt en dat jammer genoeg niet in wilt zien ...
Mhhh don't like your tone :(

Ik ben totaal ONervaren met ASP.NET we hebben een boek gekocht wat KUT blijkt te zijn en we moesten toch ergens een beginnetje maken?
We zitten hier met een internetverbinding van 64Kbits voor een kantoor van 35(!!) man, dus het internet is om te huilen, de helft van de tijd laden pagina's niet eens :'(
We zijn hier 2 studenten op een IVK stage bij een bedrijf waar ze niet eens weten wat HTML is, dus ook op dit vlak geen hulp.

We doen super hard ons best om verder te komen met ASP.NET, sorry dat ik niet geboren ben als ASP.NET programmeur ai!?!?

Conclusie: Ik ga je ongetwijfeld gelijk geven als we straks een paar maanden verder zijn met ASP.NET, maar voor nu snap ik geen maar de helft van wat je zegt! We moeten ergens beginnen toch :(

We doen onwijs ons best, maar de kennis komt ons niet zomaar aanwaaien. Helaas nog niet proggen Matrix style dat ik zo ff de benodigde ASP.NET kennis inlaad :(

Verwijderd

Verwijderd schreef op 31 oktober 2002 @ 10:55:
Mhhh don't like your tone :(
[...]
Conclusie: Ik ga je ongetwijfeld gelijk geven als we straks een paar maanden verder zijn met ASP.NET, maar voor nu snap ik geen maar de helft van wat je zegt! We moeten ergens beginnen toch :(
Sorry, ik bedoelde 't niet zo 8)7 ik wil ook alleen maar helpen, maar dan kun je toch ook soms iemand met iets meer ervaring af en toe gelijk geven? ;)

We proberen je alleen maar te helpen en aan te geven hoe het volgens ons zou moeten of beter kan...

Verwijderd

Topicstarter
We proberen je alleen maar te helpen en aan te geven hoe het volgens ons zou moeten of beter kan...
LIEV!
sorry voor mijn botte reactie was het ff spuugzat met dat gare gare gare... uhm lieve ASP.NET :P

Zal mijn boek eens naslaan op webcontrols, kijken of ik er een touw aan vast ga kunnen knopen :)

Verwijderd

Topicstarter
*zucht*
Ik begin in te zien dat de opzet die we gekozen hebben echt compleet niet .net is :(
Ik snap er echt nog geen moer van, wat is nu de .net gedachte?

Shit een hele week verkloot en ik snap nog niet hoe het wel moet.
Heeft iemand ervaring met WebMatrix en kan je daar net zo mee ontwikkelen als Visual studio?

/me zie het ff niet zo meer :'(

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 13:52
Ik werk inmiddels een redelijke tijd met .Net, maar ik gebruik ook includes hoor!
Ik werk nu aan een site waarbij je op een aantal plaatsen contact-gegevens toe kunt voegen: bij een school/instituut, bij een persoon, bij een opleiding.
Nu heb het gedeelte van de contact-gegevens gewoon in een include gestopt zodat ik niet overal opnieuw al die extboxes hoef te zetten.
In deze includes zit overigens natuurlijk ook geen code verder, maar alleen pure HTML.

Om ook de code niet steeds opnieuw te hoeven schrijven heb ik een cs-file (contact.cs) waarin alle functies mbt het formulier(-gedeelte) staan: FillForm, Save, ClearForm.
De pagina's waarin ik een contact nodig heb, laat ik gewoon afleiden van contact.cs.

En het werkt echt perfect zo ! :)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

maikel schreef op 02 november 2002 @ 00:44:
Ik werk inmiddels een redelijke tijd met .Net, maar ik gebruik ook includes hoor!
Ik werk nu aan een site waarbij je op een aantal plaatsen contact-gegevens toe kunt voegen: bij een school/instituut, bij een persoon, bij een opleiding.
Nu heb het gedeelte van de contact-gegevens gewoon in een include gestopt zodat ik niet overal opnieuw al die extboxes hoef te zetten.
In deze includes zit overigens natuurlijk ook geen code verder, maar alleen pure HTML.

Om ook de code niet steeds opnieuw te hoeven schrijven heb ik een cs-file (contact.cs) waarin alle functies mbt het formulier(-gedeelte) staan: FillForm, Save, ClearForm.
De pagina's waarin ik een contact nodig heb, laat ik gewoon afleiden van contact.cs.

En het werkt echt perfect zo ! :)
Dit lijkt me anders een perfecte toepassing van een usercontrol, met eigen codebehind....

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 13:52
gorgi_19 schreef op 02 november 2002 @ 01:25:
[...]

Dit lijkt me anders een perfecte toepassing van een usercontrol, met eigen codebehind....
Done ! :)
Met een usercontrol werkt het inderdaad ook erg goed en lekker handig.

Overigens heb ik nog steeds wel een paar includes voor bijv. de tabstrip. Die heeft een nogal erg lange style. Die heb ik dus even in een aparte include staan zodat ik 'm maar op 1 plaats hoef aan te passen indien dat nodig mocht zijn.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

maikel schreef op 04 november 2002 @ 19:47:
[...]


Done ! :)
Met een usercontrol werkt het inderdaad ook erg goed en lekker handig.

Overigens heb ik nog steeds wel een paar includes voor bijv. de tabstrip. Die heeft een nogal erg lange style. Die heb ik dus even in een aparte include staan zodat ik 'm maar op 1 plaats hoef aan te passen indien dat nodig mocht zijn.
Een erg lange style? Wat bedoel je hiermee? Bedoel je veel tabitems?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

nee, hij bedoelt style sheet.
Dit is m
<vtw:tabstrip id="TabStrip1" runat="server" TargetID="MultiPage1" sepDefaultStyle="border-bottom:solid 1px #C0C0C0;" TabDefaultStyle="background-color:#F2F2F2;font-family:verdana;font-weight:bold;font-size:8pt;color:#373737;width:79;height:12;text-align:center;border:solid 1px #C0C0C0;" TabHoverStyle="background-color:#F2F2F2;border:solid 1px #707070; border-bottom: solid 1px #C0C0C0" TabSelectedStyle="background-color:#F2F2F2;border:solid 1px #C0C0C0;color:#AB3847;border-bottom:solid 0px #C0C0C0;">
- tis dan geen kwoot, maargoed, is dan wel leesbaar.

en dat zou erg onhandig zijn als je deze elke keer in een pagina moet zetten.... lijkt ons.
zeker als je een kleurtje moet wijzigen op een gegeven moment (quote maikel ;) )

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

Kan je niet een eigen usercontrol maken, die de control vtw inherits. Vervolgens kan je in deze nieuwe control de properties goed neerzetten. Als het toch overal dezelfde style moet zijn, kan je deze bijvoorbeeld ook in een (XML) bestand neerzetten, deze laden als dataset en deze dataset cachen.

Automatisch worden dan je properties gevuld met de data uit het bestand.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Css doen je toch gewoon in een css bestand, met een html link in de header. Kan evt ook vanuit de codebehind.

oogjes open, snaveltjes dicht


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

Don Facundo schreef op 05 november 2002 @ 16:36:
Css doen je toch gewoon in een css bestand, met een html link in de header. Kan evt ook vanuit de codebehind.
Is dit niet afhankelijk van hoe de component er mee om gaat? Het is een eigen user control; ik weet niet of deze de propertie 'cssclass' ondersteunt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Je usercontrol misschien niet, maar de gebruikte elementen waarschijnlijk wel. Je kunt evt de classname via het usercontrol doorgeven. Het lijkt me in ieder geval niet verstandig de css in je control op te nemen.

oogjes open, snaveltjes dicht


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 13:52
De tabstrip is een standaard-control in .Net en die kan ik dus niet style'n dmv een CSS.
Anders had ik dat ook al echt wel gedaan hoor. :)

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

maikel schreef op 05 november 2002 @ 16:53:
De tabstrip is een standaard-control in .Net en die kan ik dus niet style'n dmv een CSS.
Dat zou ten eerste wel moeten en ten tweede komt er altijd html uit en dat kun dus stylen.

oogjes open, snaveltjes dicht


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

Verder ben ik ook wel heel benieuwd wat zo speciaal is aan die tabstrip; volgens mij is het een aangepaste datalistm welke horizontaal weergegeven wordt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

maikel schreef op 05 november 2002 @ 16:53:
De tabstrip is een standaard-control in .Net en die kan ik dus niet style'n dmv een CSS.
Anders had ik dat ook al echt wel gedaan hoor. :)
Don Facundo schreef op 05 november 2002 @ 16:59:
Dat zou ten eerste wel moeten
idd, op ieder standaard asp control zit de CssClass-property. Als je daar bijvoorbeeld de waarde "MijnControl" aan toekent en in je .css-file een .MijnControl opneemt, werkt het als een zonnetje... :7
Je moet alleen wel ff doorhebben dat CSS staat voor cascading...

Edit:
Oh, w8 ff... Je bedoelt het TabStrip-control uit de IEWebControls collectie? |:( (geen standaard asp-control, maar nog niet ondersteund door Microsoft!)
Ik had idd ook ff problemen met het TreeControl uit die collectie en het aanpassen van de stylesheet daarop... Maar ook dat control kent in principe de CssClass-property... Alleen... waarom werkte 't nou eerst bij mij niet en nu wel...? :?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 05 november 2002 @ 17:18:
[...]

idd, op ieder standaard asp control zit de CssClass-property. Als je daar bijvoorbeeld de waarde "MijnControl" aan toekent en in je .css-file een .MijnControl opneemt, werkt het als een zonnetje... :7
Je moet alleen wel ff doorhebben dat CSS staat voor cascading...

Edit:
Oh, w8 ff... Je bedoelt het TabStrip-control uit de IEWebControls collectie? |:( (geen standaard asp-control, maar nog niet ondersteund door Microsoft!)
Ik had idd ook ff problemen met het TreeControl uit die collectie en het aanpassen van de stylesheet daarop... Maar ook dat control kent in principe de CssClass-property... Alleen... waarom werkte 't nou eerst bij mij niet en nu wel...? :?
Dat zou ik ook wel willen weten waarom het bij jou wel werkt. Ik heb namelijk ook gebruik gemaakt van die treecontrol en dat is het enige gedeelte van de site die niet wordt beinvloed door de style sheet.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 13:52
Don Facundo schreef op 05 november 2002 @ 16:59:
[...]


Dat zou ten eerste wel moeten en ten tweede komt er altijd html uit en dat kun dus stylen.
Die html wordt door middel van een htc-file gegenereerd. En die is volgens mij niet echt erg simpel en overzichtelijk.
En daarbij is het dus met een include een heel stuk makkelijker te doen. :)

Verwijderd

rwb schreef op 05 november 2002 @ 19:53:
Dat zou ik ook wel willen weten waarom het bij jou wel werkt. Ik heb namelijk ook gebruik gemaakt van die treecontrol en dat is het enige gedeelte van de site die niet wordt beinvloed door de style sheet.
Je hebt gelijk! Ik heb in W&G een nieuwe topic geopend:
[rml][ ASP.NET] IEWebControls: CSS toepassen op TreeControl[/rml]
Pagina: 1