Vilket är snabbaste sättet att fylla en treeview?
Har en treeview som jag fyller vid runtime från en sql server databas, men upplever att det är lite segt.
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/svar
Svara
Sv: Vilket är snabbaste sättet att fylla en treeview?
Du borde kunna cacha informationen när den väl hämtats från databasen. På så sätt undviker du onödiga databasanrop.
Svara
Sv:Vilket är snabbaste sättet att fylla en treeview?
Jo cache gör den default, men första körningen är segare än segast.
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?
Svara
Sv: Vilket är snabbaste sättet att fylla en treeview?
Hur många noder har du? XML-fil lär inte vara snabbare om du har ordning på databasen...
Svara
Sv: Vilket är snabbaste sättet att fylla en treeview?
Är det en windowsforms 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.
//Roger
Svara
Sv:Vilket är snabbaste sättet att fylla en treeview?
Hur många noder? Ungefär 1500 artiklar.
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.
Svara
Sv:Vilket är snabbaste sättet att fylla en treeview?
Nepp applikationen är webbaserad.BeginUpdate och EndUpdate behövs väl bara i windowsforms.. ahr med Threads om jag minns rätt?
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å...
Svara
Sv: Vilket är snabbaste sättet att fylla en treeview?
RIchard
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.aspx
Svara
Sv:Vilket är snabbaste sättet att fylla en treeview?
Det finns inbyggt stöd för att läsa in undernoder dynamiskt när man expanderar en nod.
PopulateNodesFromClient heter propertyn, och inläsning av nya noder hanteras i TreeNodePopulate-event:e för treeviewkontrollen.
Svara