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...

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

Ad esempio se ho una lista nel sito http://sharepoint2007/sites/we1/lists/Anagrafiche il codice per accedere è:

C#

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.
Tags:
C#236 SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: