Программный доступ к библиотеке стилей SharePoint из C#
-
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;
}