Καλησπέρα σε όλους,
Θα ήθελα να ρωτήσω αν γνωρίζετε τρόπο με το οποίο μπορώ να χρησιμοποιήσω στο Dreamweaver MX 2004 ( χρησιμοποιώ ASP και Visual Basic Script –vb script-) nested repeaters. Το πρόβλημα που έχω είναι το εξής:
Έχω έναν πίνακα (oracle database, version 9.2) περίπου 100 γραμμών, η πρώτη αριστερή στήλη είναι η κατηγορία προϊόντος η οποία και είναι ίδια για κάθε 10 με 15 γραμμές. Παράλληλα έχω φτιάξει μία web σελίδα σε ASP στην οποία μέσα σε ένα table δείχνω τα περιεχόμενα του πίνακα. Θα ήθελα να μάθω τον τρόπο με τον οποίο μπορώ την πρώτη αριστερή στήλη, τη στήλη της κατηγορίας δηλαδή, να την επαναλαμβάνω μόνο στην πρώτη γραμμή κάθε κατηγορίας προϊόντος και όχι σε κάθε γραμμή του table.
Έτσι είναι τώρα:
-----------------------------
CAT1 - ITEM1 - SUBITEM1
CAT1 - ITEM2 - SUBITEM2
CAT1 - ITEM3 - SUBITEM3
CAT1 - ITEM4 - SUBITEM4
CAT2 - ITEM1 - SUBITEM1
CAT2 - ITEM2 - SUBITEM2
CAT2 - ITEM3 - SUBITEM3
CAT2 - ITEM4 - SUBITEM4
Έτσι θα ήθελα να γίνει:
------------------------------
CAT1 - ITEM1 - SUBITEM1
ITEM2 - SUBITEM2
ITEM3 - SUBITEM3
ITEM4 - SUBITEM4
CAT2 - ITEM1 - SUBITEM1
ITEM2 - SUBITEM2
ITEM3 - SUBITEM3
ITEM4 - SUBITEM4
Ευχαριστώ!!!
Πρώτα από όλα στον πίνακα της βάσης δεδομένων πρέπει να ξεχωρίσεις ότι το CAT1 το CAT2 και γενικότερα όλες οι κατηγορίες που αργότερα ίσως θελήσεις να περάσεις διαφέρουν από τις υποκατηγορίες. Μπορείς να περάσεις δυο εγγραφές ακόμη οι οποίες θα έχουν την εξής μορφή CAT1 - 0 - 0 και CAT2 - 0 - 0 για παράδειγμα. Γενικότερα κάθε εξτρα κατηγορία θα πρέπει να έχει μια τυποποιημένη μορφή για να μπορεί να ξεχωρίζει από τις υπόλοιπες εγγραφές. Εναλλακτικά μπορεις να το κάνεις με δυο recordsets όπου στο ένα θα βρίσκεις όλες τις εγγραφές και στο άλλο με την βοήθεια της GROUP BY τις κατηγορίες.
Ας υποθέσουμε ότι το κάνεις με τον πρώτο τρόπο. Πέρασες στην βάση σου 2 ακόμη εγγραφές της μορφής CAT1 - 0 - 0 και CAT2 - 0 - 0. Οι γλώσσες προγ/σμου για εφαρμογές web δεν υποστηρίζουν φωλιασμένα repetead regions για δεδομένα τα οποία προέρχονται από ένα recordset. Μπορούν όμως όπως όλες οι γλώσσες προγραμματισμού να έχουν φωλιασμένες δομές επανάληψης για τα δεδομένα ενός πίνακα πχ Το μόνο λοιπόν που έχεις να κάνεις αφού δημιουργήσεις το recordset είναι να φτιάξεις 2 πίνακες όπου στον ένα θα περάσεις τις εγγραφές με την τυποποιημένη μορφή που ανέφερα δηλαδή όπου το 2 και 3 πεδίο είναι 0 ή την μορφή που εσύ θα επιλέξεις και στον άλλο πίνακα τις εγγραφές που δεν ακολουθούν αυτήν την τυποποίηση. Μετέπειτα θα κάνεις προσπέλαση τον πρώτο πίνακα και θα φωλιάσεις ανάμεσα την προσπέλαση του δεύτερου πίνακα δείχνοντας μόνο τις εγγραφές όπου τα πρώτα πεδία των δύο πινάκων είναι ίδια χρησιμοποιώντας μία απλή if.
ελπίζω να βοήθησα...
tip: Unlimited Profesional ASP.NET 4.0 Hosting.+ MSSQL με 2,30 € το μήνα * F5 για νέο tip