Har en treeview som jag fyller vid runtime från en sql server databas, men upplever att det är lite segt. Du borde kunna cacha informationen när den väl hämtats från databasen. På så sätt undviker du onödiga databasanrop. Jo cache gör den default, men första körningen är segare än segast. Hur många noder har du? XML-fil lär inte vara snabbare om du har ordning på databasen... Är det en windowsforms treeview? Hur många noder? Ungefär 1500 artiklar. Nepp applikationen är webbaserad.BeginUpdate och EndUpdate behövs väl bara i windowsforms.. ahr med Threads om jag minns rätt? RIchard Det finns inbyggt stöd för att läsa in undernoder dynamiskt när man expanderar en nod.Vilket är snabbaste sättet att fylla en treeview?
Någon som har tips på hur man snabbast fyller en treeview? Går det till exempel snabbare att köra från en xml-fil som ligger färdig? Eller annat?
Tacksam för hjälp/svarSv: Vilket är snabbaste sättet att fylla en treeview?
Sv:Vilket är snabbaste sättet att fylla en treeview?
Funderar på om man kan bygga upp noderna allterfersom man klickar?
För känns lite overkill att fylla hela trädet om man inte har expanderat det?
Har även tidigare fråga , är xml-fil snabbare?
Är rekursiv fyllning snabbare? Sv: Vilket är snabbaste sättet att fylla en treeview?
Sv: Vilket är snabbaste sättet att fylla en treeview?
utför du .BeginUpdate och EndUpdate före och efter fyllningen?
problemet med treeviews i winforms är att de är bara wrappers över native win32 treeviews.
så om du gör en ändring på en nod så måste noden kastas bort och skapas om och alla undernoder ska läggastill osv (på native nivå alltså , inte själva .net objekten)
därför blir det redigt skitslött att ändra på noder.
om du dessutom missat att anropa begin och end update så kommer treeviewn rita om sig själv för varje ändring/ny node du lägger till.
//RogerSv:Vilket är snabbaste sättet att fylla en treeview?
Antal nodnivåer är 4. Märke->Modell->Huvudgrupp>Undergrupp
Rätt simpelt upplägg i databasen:
Märke->Modell har 1 till många
Huvudgrupp>Undergrupp har 1 till många
Varje modell har samma Huvudgrupper, så där behövs ingen koppling vad jag kan se.
Artikel i sin tur har en koppling till undergrupp och modell.
Sql: Märke->Modell = innerjoin.
Sql2: Huvudgrupp>Undergrupp = innerjoin.
Sql2 körs bara en gång, läggs sedan in i en arraylist.Sv:Vilket är snabbaste sättet att fylla en treeview?
F.ö så laddar väl denna treeview ..successivt:
Dvs verkar bara ladda in det man ser(nod-nivå) för tillfället:
http://www.kontorsgiganten.se/
Funderar på om inte det är en väg att gå...Sv: Vilket är snabbaste sättet att fylla en treeview?
Tack för svaret, hittade det tidigare: PopulateOnDemand
Rätt ok sida här för den som är intresserad:
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/navigation/treeview.aspxSv:Vilket är snabbaste sättet att fylla en treeview?
PopulateNodesFromClient heter propertyn, och inläsning av nya noder hanteras i TreeNodePopulate-event:e för treeviewkontrollen.