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

StackOverflow https://stackoverflow.com/questions/424739

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

c#новичок

Это было полезно?

Решение

Вот небольшой код для извлечения элементов списка из списка:

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

Другие советы

Патрик,

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

Ознакомьтесь со статьей здесь.

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

Ник.

без Линка:

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

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

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

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

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top