Accesso a livello di codice alla libreria di stili di SharePoint da C #
-
05-07-2019 - |
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
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;
}