Εργάζονται με TreeNodeBinding μετά την ανάπτυξη του στοιχείου ελέγχου ASP.NET Treeview

Έχω εργαστεί σε αυτό που ελπίζω ότι θα είναι μια σύντομα-κυκλοφόρησε CodePlex έργου που παρέχει ένα ωραίο ολοκληρωμένο κομμάτι των τμημάτων web που μιλούσαν μεταξύ τους μέσω συνδέσεων υπηρεσίας παροχής/καταναλωτή με σκοπό τη διερεύνηση μιας τοποθεσίας του SharePoint κάτω από τα σκεπάσματα.  (Αυτό βεβαίως έχει γίνει στο παρελθόν, αλλά αυτό είναι ένα πρόγραμμα εκμάθησης όσο οτιδήποτε άλλο).  Αυτό είναι γραφτό να γίνει μια αντικατάσταση για τα windows εξερευνητής άποψη του SharePoint 2010 βιβλιοθήκες εγγράφων.

Ο κώδικας έχει η συνήθης αναδρομική έκκληση προς τα κάτω το SPWeb και SPLists από ένα δεδομένο σημείο.  Το αντικείμενο που κάνει όλα που διέρχονται από συσσωρεύεται μια συμβολοσειρά XML που μοιάζει κάπως έτσι:

<συλλογή_τοποθεσιών url =’http://demo2010a:9090′>
 
<Web
     Τίτλος = «Γεια σας κόσμο Sandbox» 
     Πρότυπο = «μια τοποθεσία για ομάδες για να οργανώσετε γρήγορα, συγγραφέας, και να ανταλλάσσουν πληροφορίες, ΜΠΛΑ ΜΠΛΑ ΜΠΛΑ»>

     <λίστα
        Τίτλος = «BCC_Health_Services_FAQs’
        Πρότυπο =» CustomList’
       
ListId =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</λίστα>

     <λίστα
        Τίτλος = «BCC_Notifications» 
        Πρότυπο = «CustomList» 
        ListId =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </λίστα>

  </Web>

</συλλογή_τοποθεσιών>

Περιμένω να καθαρίσει επάνω το XML πριν από όλα έχουν ειπωθεί και γίνει.

Θα ήθελα να τελικά να πάρετε τις πληροφορίες αυτές, μέχρι και σε ένα στοιχείο ελέγχου Treeview.  Δεν είναι ακριβώς γη συγκλονιστικά πράγματα.

Η πρόκληση που πήρα εδώ ήταν να συνδέσει την ιεραρχημένη προβολή με ένα στοιχείο ελέγχου προέλευσης δεδομένων XML αντί να οικοδομούμε με μη αυτόματο τρόπο τις treenodes μου όπως εγώ διασχίζουν το δέντρο.  Έκανα αυτό, εν μέρει επειδή είμαι σκόπιμα κάνει τα πράγματα πιο δύσκολο για τον εαυτό μου (Αυτό είναι ένα πρόγραμμα εκμάθησης μετά από όλα) και εν μέρει επειδή έχω αυτό αόριστη ιδέα ότι η δημιουργία κόμβους δέντρο όπως εγώ διασχίζουν το δέντρο δεν είναι μια καλή ιδέα για τους μακροχρόνια ανέργους.

Το πρόβλημα με αυτή την προσέγγιση είναι ότι Treeview ελέγχου δεν γνωρίζει για τις καλές ιδιότητες στους κόμβους ενδιαφέρον όπως "λίστα" ή "web", έτσι ώστε να δείχνει αυτό εξόδου από προεπιλογή:

 

image

Αυτό δεν είναι χρήσιμο.  Αυτό είναι όπου βοηθά την κλάση TreeNodeBinding μετά την ανάπτυξη.  Μπορώ να χρησιμοποιήσω αυτό για να πει το Treeview στοιχείο ελέγχου πώς αυτό θα πρέπει να ερμηνεύσει το XML.  Εδώ είναι ένα παράδειγμα:

tnb = νέα TreeNodeBinding μετά την ανάπτυξη();
tnb.DataMember = "λίστα"; // Αυτό είναι η ετικέτα στο xml για μια τοποθεσία.
tnb.TargetField = "listid";
tnb.ValueField = "Τίτλος";
tnb.ToolTipField = "Πρότυπο";

Αυτή η δεσμευτική λέει το treeview που όταν βρίσκει ένα <λίστα> κόμβος στο XML, ισχύουν τα bindings για TargetField, ValueField και ToolTipField.  Στο Μαΐου app, αυτά χάρτη ως εξής:

  • TargetField: Όταν κάποιος κάνει κλικ σε μια κόμβου τιμή, Αυτό είναι τι θα πάρετε για SelectedNode.Value.  Αυτό είναι δεν πρέπει να συγχέεται με...
  • ValueField: Αυτό είναι ό, τι θέλετε το Treeview να εμφανίζει στο χρήστη.
  • ToolTipField: Η αξία από το αρχείο XML που θέλετε ως συμβουλή εργαλείου.

Προσθέστε ότι η TreeNodeBinding μετά την ανάπτυξη της ιεραρχημένης προβολής του συνδέσεις δεδομένων και να πάρει εξόδου όπως αυτό:

 

image

Θα έχω περισσότερο όλα αυτά όπως θα συνεχιστούν και τελικά να βάλει αυτό επάνω σε Codeplex.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

3 thoughts on «Εργάζονται με TreeNodeBinding μετά την ανάπτυξη του στοιχείου ελέγχου ASP.NET Treeview

  1. Pingback: Tweets που αναφέρουν εργάζονται με TreeNodeBinding μετά την ανάπτυξη στο ASP.NET Treeview στοιχείο ελέγχου «του Paul Galvin SharePoint χώρου -- Topsy.com

  2. Holger

    Γεια σου Paul,

    Έλεγξα ακριβώς που τον εαυτό μου. Δούλεψε στο βαθμό που περιγράψατε ότι ακόμη και αν δεν παίρνω ότι οι πληροφορίες από το site σας (Τι κρίμα :-)).
    Το θέμα που με ενδιαφέρει είναι, Προσπάθησα να κάνω τη δομή τεμπέλης φόρτωση με την ιδιότητα PopulateOnDemand. Διαφορετικά το treeview φορτώσει την πλήρη δομή σε ένα σύνολο το οποίο θα ήθελα να αποφευχθεί. Αυτή η ιδιότητα PopulateOnDemand δεν φαίνεται να έχουν κανένα αποτέλεσμα.

    Επίσης το treeview δεν αποθηκεύσετε οποιαδήποτε επέκταση / σύμπτυξη πληροφορίες κατάστασης.

    Να το λύσουμε αυτά τα θέματα?

    Χαιρετισμούς

    Holger

    1. Paul Galvin Δημοσίευση συγγραφέα

      Ξέρω ότι δημοσιεύτηκε αυτό το σχόλιο εδώ και πολύ καιρό. Συγγνώμη για την απάντηση ποτέ. Υποθέτω ότι έχεις καιρό σας λύση :).

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *