<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Web Development</title><link>https://www.dotnetzone.gr:443/cs/forums/75/ShowForum.aspx</link><description>Ολα τα θέματα που σας απασχολούν σχετικά με ASP, ASP.NET αν τώρα επιχειρείτε να φτιάξετε την πρώτη σας σελίδα.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Hierarchical Tree</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36756.aspx</link><pubDate>Mon, 29 Oct 2007 22:41:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36756</guid><dc:creator>pan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36756.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=36756</wfw:commentRss><description>&lt;P&gt;Γεια χαρά&lt;/P&gt;
&lt;P&gt;Ποιός είναι ο καλύτερος τρόπος για να εμφανίσουμε ένα leftmenu που έρχεται από βάση? Παλιότερα με χρήση classic ASP 3.0, δημιουργούσαμε &lt;BR&gt;recordset μέσα se recordset και εμφανίζαμε τα παιδιά της κάθε κατηγορίας. Όμως η αυτό είχε σαν αποτέλεσμα να κάνουμε πολλαπλά select &lt;BR&gt;για κάθε παιδί, ώστε να φέρουμε τα παιδιά του παιδιού..&lt;BR&gt;δηλ έχουμε τον πίνακα "keimena" όπου :&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; keimena_id int primary key, &lt;BR&gt;&amp;nbsp; keimena_title nvarchar(100), &lt;BR&gt;&amp;nbsp; keimena_parent int not null&lt;BR&gt;&amp;nbsp; keimena_showleftmenu bit&lt;BR&gt;&amp;nbsp; )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp; Έχουν αλλάξει καθόλου με τώρα τα πράγματα? Δυστυχώς χρησιμοποιώ ακόμη sql server 2000 και όχι την 2005 ώστε να κάνω χρήση του self referenced table.&lt;BR&gt;&amp;nbsp; Υπάρχει τίποτα τέτοιο σε 2000 ?&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; Για να αποφύγω τα πολλά select έχω σκεφτεί 2 τρόπους. Δεν γνωρίζω αν είναι καλοί από θέμα performance.&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; Αν υποθέσουμε ότι το&amp;nbsp;path των&amp;nbsp;selected άρθρων είναι&amp;nbsp;: &lt;STRONG&gt;2 &amp;gt; 28 &amp;gt; 29 &amp;gt; 318 &amp;gt; 324&lt;/STRONG&gt;. Τότε :&lt;BR&gt;&amp;nbsp; a) Φέρνω σε έναν dataTable όσα εμφανίζονται στο leftmenu=1. Loop-άρω όλες τις εγγραφές μία μία και για κάθε id που βρίσκω ξανα-καλώ&lt;BR&gt;&amp;nbsp; με ένα filter και φέρνω τα data όπου το (keimena_parent =&amp;nbsp; reader["keimena_id"]). Αλλά αυτό μου δημιουργεί αρκετούς dataTable.&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; b) έχω φέρει σε 5 arrays όλα τα ids με ένα SELECT. δηλ. όλα όσα έχουν keimena_parent=2, όλα όσα έχουν keimena_parent=28, &lt;BR&gt;&amp;nbsp; όλα όσα έχουν keimena_parent=29, όλα όσα έχουν keimena_parent=318&lt;BR&gt;&amp;nbsp; άρα έχω :&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&lt;FONT color=#006400&gt; int[] arrayNavigation = {2, 28, 29, 318, 324}&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; int[] array1 = {3, 4, 5, 6, &lt;STRONG&gt;28&lt;/STRONG&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;......................... όσα έχουν keimena_parent=2&lt;BR&gt;&amp;nbsp; int[] array2 = {&lt;STRONG&gt;29&lt;/STRONG&gt;, 30, 31, 32, 33, 34}.................όσα έχουν keimena_parent=28&lt;BR&gt;&amp;nbsp; int[] array3 = {310, 311, 312, 313, &lt;STRONG&gt;318&lt;/STRONG&gt;, 319}.......όσα έχουν keimena_parent=29&lt;BR&gt;&amp;nbsp; int[] array4 = {&lt;STRONG&gt;324&lt;/STRONG&gt;, 325, 326}.............................όσα έχουν keimena_parent=318&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp; Μπορώ κάπως να φτιάξω το δέντρο ώστε μετά να διαβάσω τα IDs με την σειρά ?&lt;BR&gt;&amp;nbsp; δηλ το αποτέλεσμα να είναι της μορφής :&lt;/P&gt;
&lt;P&gt;|1&amp;nbsp; &lt;BR&gt;|2&lt;BR&gt;----&amp;gt;&amp;nbsp; &lt;BR&gt;|10&amp;nbsp;|3&lt;BR&gt;|11&amp;nbsp;|4&lt;BR&gt;|12&amp;nbsp;|5&lt;BR&gt;&amp;nbsp;|6&lt;BR&gt;&amp;nbsp;|28&lt;BR&gt;&amp;nbsp;|---&amp;gt;29&lt;BR&gt;&amp;nbsp;&amp;nbsp;|----&amp;gt;|310&lt;BR&gt;&amp;nbsp;&amp;nbsp;|----&amp;gt;|311&lt;BR&gt;&amp;nbsp;&amp;nbsp;|----&amp;gt;|312&lt;BR&gt;&amp;nbsp;&amp;nbsp;|----&amp;gt;|313&lt;BR&gt;&amp;nbsp;&amp;nbsp;|30&lt;BR&gt;&amp;nbsp;&amp;nbsp;|31&lt;BR&gt;&amp;nbsp;&amp;nbsp;|32&lt;BR&gt;&amp;nbsp;&amp;nbsp;|33&lt;BR&gt;&amp;nbsp;&amp;nbsp;|34&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Αν υπάρχει κάποιος άλλος τρόπος, πάντα ευπρόσδεκτος.&amp;nbsp;&amp;nbsp;&lt;BR&gt;Ευχαριστώ. &amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>