Avatar billede mach3 Nybegynder
28. december 2004 - 22:00 Der er 2 kommentarer og
1 løsning

TreeView (Microsoft.Web.UI.WebControls)

Hej,

Jeg arbejder med TreeView (Microsoft.Web.UI.WebControls). Helt nederst på siden i dette link http://msdn.microsoft.com/library/default.asp?url=/workshop/webcontrols/webcontrols_entry.asp står der, at man helst ikke bør overskride 1000 nodes i et TreeView, da der ellers kan opstå performance problemer.

Jeg vil snart have behov for at skulle have ca 3000 nodes i alt. Hele træet bliver pt loadet første gang man kommer ind på siden - og det tager ingen tid. Data kommer pt fra en access database, og da det stadig er en prototype, er der kun 20-30 nodes. Det er meningen, at det skal flyttes over på MS Sql, og det er her, de ca 3000 nodes kommer på.

Dette er ca tal:
level1 - 8 nodes
level2 - 40
level3 - 3000
level4 - 3000

Der er så et hieraki i mellem data, som jeg har sat op vha DataSet.Relations, dvs de 3000 level3 nodes er fordelt ud på 40 level2 nodes. Der er ca et "een til een" forhold i mellem level3 nodes og level4 nodes.

Jeg har en løs ide, om kun at loade top level nodes til at starte med. Derefter vil jeg loade alt efter hvad der bliver klikket på - men ved ikke lige hvordan det kan laves :o)

Er der  nogen som har erfaring med eller tips/ideer til hvordan man kan håndtere situationen?

Alle indlæg og/eller spørgsmål er velkomne :o)

Det er noget som skal laves over de næste to-tre uger. Jeg håber der er nogen som kan hjælpe mig, eller komme med nogle hints.

Mange tak.
Avatar billede mach3 Nybegynder
28. december 2004 - 22:05 #1
Man kan tilsyneladende ikke linke direkte til artiklen. Klik på linket jeg har skrevet i der første indlæg. På siden man kommer til klikker man på "About the TreeView WebControl" og det er så nederst på denne side at der står om de 1000 nodes.

:o)
Avatar billede mach3 Nybegynder
30. december 2004 - 13:37 #2
Update:

Jeg har lige prøvet at fylde al den 'ægte' data på træet. Og hold fast :o) Når man højreklikker på websiden som genereres, vælger 'vis kilde', kopierer alt og derefter gemmer det i en ny fil teks.txt har man en fil som fylder ca 1MB. Viewstaten i sig selv er 34km lang og fylder halvdelen.

Dvs der flyver 1 MB trafik frem og tilbage hver gang siden laver postback og det sker ved hvert klik da det skal fanges, hvad der er blevet klikket på.

Slår man viewstate fra fungerer træet ikke, så det er ikke en mulighed.

Som I kan forstå skal der tænkes på en anderledes måde, lige nu kører det på localhost og får alligevel computeren (Pentium IV 2.4GHz, 512 MB RAM) til at gå i knæ. Det her skal også kunne køres fra en Pentium II med en 56KBit modem forbindelse :o)

Jeg har tænkt mig at fjerne level1 og level2 fra træet. De laves i stedet for med nogle DropDownLister, og på den måde får træet en mere overkommelig størrelse.

Kommer tilbage med update når der sker noget :-)

I mellemtiden skal I endelig ikke holde jer tilbage med kommentarer, erfaringer eller forslag.

Mere generelt formuleret så er det her måske et problem, som omhandler tilgang til store mængder data. Jeg har ikke før arbejdet med så store mængder data, så det har altid være noget med, bare at trække al data ud i et DataSet og så bare anvende det.

Med venlig hilsen
Avatar billede mach3 Nybegynder
31. december 2004 - 12:28 #3
Update:

Jeg lukker og slukker denne tråd :o) Mine tests viste, at det ikke er smart at anvende TreeView til store mængder data. Jeg vil i stedet anvende DropDownList.

Mvh
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