Funzione Helper.GetList per SharePoint
La funzione qua sotto, Helper.GetList, per SharePoint 2007 (WSS3- MOSS), permette di ricavare un oggetto SPList tramite la sua url adattandosi alla lingua del template di sito.
Va chiamata passando l'oggetto SPWeb in cui si trova la lista e la parte di url che si riferisce alla lista, senza la folder Lists, Liste, ecc...
Ad esempio se ho una lista nel sito http://sharepoint2007/sites/we1/lists/Anagrafiche
il codice per accedere è:
Il vantaggio di questa funzione è che si adatta alla lingua del template di sito.
Quindi se ho un template si sito in italiano dove la url è http://sharepoint2007/sites/we1/liste/Anagrafiche , quindi con Liste anzichè Lists il codice funziona sempre.
Va chiamata passando l'oggetto SPWeb in cui si trova la lista e la parte di url che si riferisce alla lista, senza la folder Lists, Liste, ecc...
C#
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
namespace Sgart
{
class Helper
{
public static uint LangSiteTemplate
{
get { return SPContext.Current.Web != null ? SPContext.Current.Web.Language : 1033; }
}
public static SPList GetList(SPWeb web, string listUrl)
{
string urlFolderLists = SPUtility.GetLocalizedString("$Resources:core,lists_Folder;", null,LangSiteTemplate);
string url = web.ServerRelativeUrl == "/" ? "" : web.ServerRelativeUrl;
return web.GetList(string.Format("{0}/{1}/{2}", url, urlFolderLists, listUrl));
}
}
}
C#
string url = "http://sharepoint2007/sites/we1";
using (SPSite site = new SPSite(url)) {
using (SPWeb web = site.OpenWeb()) {
SPList list = Helper.GetList(web, "anagrafiche");
//...
}
}
Quindi se ho un template si sito in italiano dove la url è http://sharepoint2007/sites/we1/liste/Anagrafiche , quindi con Liste anzichè Lists il codice funziona sempre.