Программный доступ к библиотеке стилей SharePoint из C # - PullRequest
1 голос
/ 08 января 2009

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

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

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

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

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

C # новичка

Ответы [ 5 ]

1 голос
/ 08 января 2009

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

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

0 голосов
/ 19 марта 2009

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

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

0 голосов
/ 19 января 2009

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

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;
}
0 голосов
/ 09 января 2009

без 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 () для соответствующих объектов.

НТН, JT

0 голосов
/ 08 января 2009

Patrick

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

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

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

Ник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...