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...
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));
}
}
}
Ad esempio se ho una lista nel sito
http://sharepoint2007/sites/we1/lists/Anagrafiche
il codice per accedere è:
string url = "http://sharepoint2007/sites/we1";
using (SPSite site = new SPSite(url)) {
using (SPWeb web = site.OpenWeb()) {
SPList list = Helper.GetList(web, "anagrafiche");
//...
}
}
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.