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