2009-01-08 6 views
1

Tout d'abord, je suis un débutant à C# et SharePoint, (moins d'un mois d'expérience) alors excuses si c'est une question évidente ou facile, mais j'ai été au chalut pour un quelques jours maintenant avec absolument aucun succès.Accès par programmation à la bibliothèque de styles SharePoint à partir de C#

J'ai un fichier xslt que j'ai stocké dans un sous-répertoire de 'Style Library' depuis le nouveau site mais comment puis-je y accéder depuis C#?

J'ai regardé SPSite et SPWeb mais aucun d'entre eux ne semble capable de faire ce que je veux.

Toute aide sera grandement appréciée.

Un grand merci

C# débutant

+0

Quelques infos supplémentaires: Nous utilisons Framework 2.0 .NET Nous allons déployer le code sur le serveur SharePoint Laissez-moi savoir si j'ai omis toute autre information pertinente. – Patrick

Répondre

1

Voici un peu de code pour récupérer les éléments de liste d'une liste:

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"] 
           }; 
      } 

Pour récupérer un fichier que vous pouvez également utiliser cette méthode sur SPWeb: GetFileAsString

+0

Salut Ray Merci beaucoup d'avoir répondu si rapidement! Quel type de variable est «web» et comment doit-il être instancié pour me donner accès à la «bibliothèque de styles»? En outre, nous développons sous .NET Framework 2.0, je ne peux pas utiliser LINQ (mais c'est le moindre de mes soucis en ce moment!) Merci encore Patrick – Patrick

+0

Web est de type SPWeb. http://msdn.microsoft.com/en-us/library/ms473633.aspx Ceci est et article de MSDN qui fournit une vue d'ensemble simple du modèle d'objet de Sharepoint. Donc, la bibliothèque de style est juste un objet SPList standard accessible à partir de l'objet SPWeb – drax

+0

Désolé, c'est de ma faute, c'est un SPWeb. Ne pas oublier de pousser ceci dans une instruction using car elle implémente IDisposable. –

0

Patrick,

I hop Vous appréciez C# et SharePoint!

Consultez l'article here.

Lisez ceci, et il devrait vous donner toute l'assistance dont vous avez besoin.

Nick.

+0

Salut Nick Un grand merci pour votre réponse rapide. Je ne suis pas sûr que les techniques suggérées dans le lien peuvent être utilisées pour mes besoins car mon code doit être déployé sur le serveur SharePoint et les notes semblent être destinées à ceux qui ne veulent pas déployer de code sur le serveur SharePoint lui-même. – Patrick

0

sans 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); 
} 

Le SPWeb peut être récupéré de nombreuses façons, en utilisant le SPContext fonctionnera si le code est appelé à partir de SharePoint. Pour obtenir un objet SPWeb à partir d'une URL que vous pouvez utiliser l'instruction « utilisant » objet SPSite à savoir

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

assure des ressources non gérés sont remis en état en temps opportun, en appelant « Dispose() » sur les objets pertinents.

HTH, jt

0

Un grand merci pour votre aide à cet égard. Je l'ai utilisé un peu de chacun et fait quelques lectures complémentaires et je suis venu avec les éléments suivants:

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; 
} 
0

efficace que cela puisse être, vous devriez vraiment regard sur les meilleures pratiques en ce qui concerne le stockage des documents à dans la ruche 12 par rapport à la base de données de contenu.

Il y a beaucoup plus de réponses évolutives, qui doivent être considérées avant de choisir la route de lemming.

Questions connexes