Программный доступ к библиотеке стилей SharePoint из C#

Во-первых, я новичок в C# и SharePoint (менее чем за месяц), поэтому извиняюсь, если это очевидный или простой вопрос, но я трачу сеть в течение нескольких дней, но безуспешно.

У меня есть файл xslt, который я сохранил в подкаталоге "Библиотеки стилей" на новом веб-сайте, но как я могу получить к нему доступ в C#?

Я посмотрел на SPSite и SPWeb, но ни один из них, кажется, не может сделать то, что я хочу.

Любая помощь будет принята с благодарностью.

Большое спасибо

C# новичок

5 ответов

Решение

Вот немного кода для извлечения элементов списка из списка:

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

Чтобы получить файл, вы также можете использовать этот метод на SPWeb: GetFileAsString

Большое спасибо за вашу помощь с этим. Я использовал немного от каждого, сделал дополнительное чтение и придумал следующее:

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

Каким бы эффективным это ни было, вы должны действительно изучить лучшие практики, связанные с хранением документов в 12-м улье по сравнению с базой данных контента.

Есть гораздо более масштабируемые ответы, которые следует учитывать, прежде чем выбрать маршрут лемминга.

Патрик,

Я надеюсь, вам понравится как C#, так и SharePoint!

Проверьте статью здесь.

Прочитайте это до конца, и это должно оказать вам всю необходимую помощь.

Ник.

Без 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 можно получить различными способами, используя SPContext, который будет работать, если код вызывается из SharePoint. Чтобы получить объект SPWeb из URL, вы можете использовать объект SPSite, т.е.

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

оператор using обеспечивает своевременное восстановление неуправляемых ресурсов путем вызова метода Dispose() для соответствующих объектов.

HTH, JT

Другие вопросы по тегам