Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Accessing lists programmatically

Îåêßíçóå áðü ôï ìÝëïò dgg. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 14-05-2009, 16:35. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-05-2009, 18:26 50649

    Accessing lists programmatically

    Γειά σας παιδία,

     

    Θέλω μέσω κώδικα να πάρω μόνο τα ονόματα των διαθέσιμων λιστών απο ένα sharepoint site. Δοκίμασα κάτι τέτοιο:

     

    using(SPSite site = new SPSite(http://myServer/Lists))
                {
                    using(SPWeb web = site.OpenWeb())
                    {
                        foreach(SPList li in web.Lists)
                        {
                            do something

                        }
                    }
                }

     

    αλλά μου έβγαλε και τα document libraries απο το κεντρικό site(http://myServer), παρόλο που του είπα, όπως βλέπετε παραπάνω new SPSite(http://myServer/Lists).

     

    Καμμία ιδέα;

  •  12-05-2009, 00:20 50657 σε απάντηση της 50649

    Απ: Accessing lists programmatically

    Ο λόγος είναι ότι και τα document libraries είναι λίστες. Το url /Lists/ δεν έχει κάποια πραγματική υπόσταση αλλά χρησιμοποιείται απλά για μία πρόχειρη ομαδοποίηση των λιστών που ΔΕΝ είναι βιβλιοθήκες και δημιουργούνται μέσω του web site. Με τον Sharepoint Designer μπορείς άνετα να δημιουργήσεις λίστες και έξω από το Lists. Όταν δημιούργησες το SPSite δίνοντας http://myserver/Lists, χρησιμοποιήθηκε μόνο το κομμάτι http://myserver.

    Για να ξεχωρίσεις αν μία λίστα είναι βιβλιοθήκη ή όχι, πρέπει να ελέγξεις το property SPList.BaseType. Αν έχει τιμή DocumentLibrary είναι ... document library.

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-05-2009, 16:05 50710 σε απάντηση της 50657

    Απ: Accessing lists programmatically

    Μάλιστα,

     

    Χρησιμοποίησα:

    foreach(SPList li in web.Lists)
    {
              if(li.BaseType != SPBaseType.DocumentLibrary)

              {

                     do something

               }

    }

    και βελτιώθηκε κάπως η κατάσταση.

     

    Μία ερώτηση ακόμα(δεν ξέρω αν πρέπει να ανοίξω καινούριο θέμα) :

    Το: using (SPSite site = new SPSite(http://myServer)) γίνεται κάπως αλλιώς, ετσι ώστε να βρίσκει αυτόματα το όνομα του site collection κάτω απο το οποίο τρέχει το custom field; Ο λόγος που το θέλω αυτό είναι επειδή φτιάχνω installable, να μπορεί να τρέχει σε οποιοδήποτε server το κάνω deploy.

  •  14-05-2009, 16:35 50711 σε απάντηση της 50710

    Απ: Accessing lists programmatically

    Το τρέχον site collection, web, λίστα και χρήστη μπορείς να τα βρείς από την κλάση SPContext. Για παράδειγμα, το τρέχον site collection μπορείς να το βρεις με το SPContext.Current.Site.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems