Avatar billede md_craig Nybegynder
19. september 2003 - 11:58 Der er 10 kommentarer og
1 løsning

Templating, (ascx filer)

Jeg skal have lavet nogel ASCX filer til min side, simple først...

Skal egentlig have udskrevet en række links hentet fra en DB...

Fx:
_____________________________
Side 1
- Link1
- Link2
- Link3
_____________________________
Side 4
_____________________________
Side 5
- Link 1
- Link 2
- Link 3
- Link 4
- Link 5

der skal jo så noget loop til og der skal hentes fra en DB...

Disse ting skal foregå i Default.vb
Men hvad jeg gør, fra at have min DataReader til at få det over i min ascx og udskrevet korekt på min side, det er jeg lidt lost i...
Avatar billede roger Nybegynder
19. september 2003 - 15:50 #1
Du loader din usercontrol, og sætter de data du ønsker ind.

MinUserControl uc = (MinUserControl)LoadControl("virtual sti til usercontrol");

uc.IndsætMineData(data);
Avatar billede md_craig Nybegynder
19. september 2003 - 19:16 #2
Øhhh... Det tror jeg ikke siger mig så meget...
Avatar billede roger Nybegynder
19. september 2003 - 20:20 #3
prøv lige at forklar lidt nærmere hvad det er du vil...
Avatar billede md_craig Nybegynder
19. september 2003 - 20:31 #4
Det skal være noget med noget loop...

i ASP Clasic...

Do While NOT rs.eof
  %><a href="<%=RS("Link")%>"><%=RS("Link")%></a><%
  RS.Movenext
Loop

Det skal jeg have lavet tilsvarende med:

Default.vb - Henter de nødvendige Records, og lagre dem i en DataReader
Link.ascx - Udskriver linksne, og ascx includeres i aspx filen
Default.aspx - viser resultatet

Er det mere forståeligt ??? jeg er lidt ny i ASP.NET...
Men MEGET inde i ASP Clasic... VBS, Java og Visual Basic.Net

Men hvad der ligger i ASP.NET delen i Frameworket er jeg lidt lost i, men kan se fordelene i forhold til ASP Classic
Avatar billede roger Nybegynder
20. september 2003 - 13:01 #5
MinUserControl uc = (MinUserControl)LoadControl("virtual sti til usercontrol");
SqlCommand command= new SqlCommand("SELECT ...");
SqlDataReader reader = command.ExecuteReader();
while(reader.Read()){
HyperLink link = new HyperLink();
link.Text=(string)reader["link"];
link.NavigateUrl=(string)reader["url"];
uc.Controls.Add(link);
}
Avatar billede roger Nybegynder
20. september 2003 - 14:19 #6
Ovenstående er c# syntax, men princippet er nøjagtig det samme.
Avatar billede md_craig Nybegynder
20. september 2003 - 14:59 #7
Men det er stadig noget der ligger direkte i min VB fil så...

Til denne lille opgave er det godt nok, men grunden til jeg gerne vil det andet, er at jeg skal bruge det til så mange andre ting...
Avatar billede roger Nybegynder
20. september 2003 - 17:20 #8
Du snakker sort.

Hvorfor kan du ikke bruge min løsning ? Hvis du kunne sige dette mere præcist, kunne jeg måske præsentere en anden løsning.

Du skriver:
Men hvad jeg gør, fra at have min DataReader til at få det over i min ascx og udskrevet korekt på min side, det er jeg lidt lost i...

Du henter dine data, loader din UserControl og smider data ind i din UserControl. Sådan vil proceduren være.

Det mener jeg også jeg har besvaret.

Det eneste du mangler er at tilføje din UserControl til din Page.
Avatar billede md_craig Nybegynder
20. september 2003 - 17:47 #9
Jeg SKAL bruge der de kalder Templating...

Du har som sagt en ASCX fil som du præsentere dine data med... Det er for at lære noget jeg har oprettet spørgsmålet, kunne nok selv løse problemet på andre måder, men jeg vil lære at bruge templating....

Det er lidt som SSI i ASP.Clasic...

If side = 1 Then Include Fil 1
2 then 2 osv...

Det det hele går ud på er at have en fil til at hente data, (VB filen)
Så have en til at præsentere Dataene, (ascx) og endelig den fil der sørger for at det vises i ens browser...

Jeg ved godt jeg snakker sort, men det er faktisk ret svært at forklare...
Men grunden til jeg vil lære det, er naturligvis for at skille programering fra formatering... men da alle sider skal vises ud fra Default.aspx, så skal jeg bruge ascx filer...

Således at hvis jeg går ind på forsiden, så benytter den forside.ascx, går jeg så ind på portfolio, så nupper den portfolio.ascx osv...

Både protfolio.ascx og forside.ascx får så informationer fra default.vb...

I dette tilfælde er det noget der skal være på alle sider, men det er så for at lære tekniken...
Avatar billede roger Nybegynder
20. september 2003 - 20:45 #10
Ok...så ville jeg vælge en hel anden løsning.

http://www.codeproject.com/aspnet/page_templates.asp

Princippet er at skrive sin egen Page-class der arver fra System.Web.UI.Page, og så lade alle sine pages arve fra denne klasse.
Avatar billede md_craig Nybegynder
12. januar 2004 - 14:31 #11
fik jeg aldrig rigtig noget ud af...
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