Domanda

In primo luogo, sono un principiante di C # e SharePoint, (meno di un mese di esperienza), quindi mi scuso se questa è una domanda ovvia o facile, ma sto trascinando in rete da un paio di giorni ormai senza successo. .

Ho un file xslt che ho archiviato in una sottodirectory di "Style Library" dal nuovo sito Web, ma come posso accedervi da c #?

Ho guardato SPSite e SPWeb ma nessuno dei due sembra in grado di fare esattamente quello che voglio.

Qualsiasi aiuto verrà ricevuto con gratitudine.

Mille grazie

c # newbie

È stato utile?

Soluzione

Ecco un po 'di codice per recuperare gli elementi dell'elenco da un elenco:

SPList list = web.Lists["MyLibrary"];
            if (list != null)
            {
                var results = from SPListItem listItem in list.Items
                              select new 
                              {
                                  xxx = (string)listItem["FieldName"]),
                                  yyy  = (string)listItem["AnotherField"],
                                  zzz = (string)listItem["Field"]
                              };
            }

Per recuperare un file è possibile utilizzare questo metodo anche su SPWeb: GetFileAsString

Altri suggerimenti

Patrick,

Spero che ti piacciano sia C # che SharePoint!

Consulta l'articolo qui .

Leggilo attentamente e dovrebbe darti tutta l'assistenza di cui hai bisogno.

Nick.

senza linq:

int itemId = getItemId();
SPWeb currentWeb = SPContext.Current.Web;
SPList list =  currentWeb.Lists["MyList"];
if ( list != null )
{
     SPListItem theItem = list.Items.GetItemById(itemId);
     doWork(theItem);
}

SPWeb può essere recuperato in numerosi modi, utilizzando SPContext funzionerà se il codice viene chiamato da SharePoint. Per ottenere un oggetto SPWeb da un URL è possibile utilizzare l'oggetto SPSite, ad esempio

using ( SPSite site = new SPSite(urlToWeb) )
{
   using (SPWeb web = site.OpenWeb())
   {
     doWork(web);
   }
}

l'istruzione "using" assicura che le risorse non gestite vengano recuperate in modo tempestivo, chiamando "Dispose ()" sugli oggetti pertinenti.

HTH, JT

Per quanto sia efficace, dovresti davvero esaminare le migliori pratiche in quanto riguardano la memorizzazione di documenti nell'hive 12 rispetto al database del contenuto.

Esistono molte più risposte scalabili, che dovrebbero essere considerate prima di scegliere il percorso di lemming.

Mille grazie per l'assistenza. Ho usato un po 'da ciascuno e ho fatto alcune letture aggiuntive e ho escogitato quanto segue:

private static string getXsl()
{
    string xslString = null;
    using (StreamReader streamReader = new StreamReader(
        File.Open(HttpContext.Current.Server.MapPath(@"~_layouts\theXSL.xslt"), FileMode.Open)))
    {
        xslString = streamReader.ReadToEnd();
    }
    return xslString;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top