以编程方式从C#中访问SharePoint样式库

时间:2009-01-08 15:45:45

标签: c# sharepoint spsite spweb

首先,我是C#和SharePoint的新手,(不到一个月的经验)如果这是一个明显或简单的问题,我很抱歉,但我已经在网上拖了几天,现在绝对没有成功

我有一个xslt文件,我已经存储在新网站的“样式库”子目录中但是如何从c#中访问它?

我看过SPSite和SPWeb,但似乎都没能做到我想要的。

将非常感激地收到任何和所有的帮助。

非常感谢

C#新手

5 个答案:

答案 0 :(得分:1)

以下是从列表中检索列表项的一些代码:

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

答案 1 :(得分:0)

帕特里克,

我希望你喜欢C#和SharePoint!

查看文章here

通读阅读,它应该为您提供所需的一切帮助。

尼克。

答案 2 :(得分:0)

没有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,如果从SharePoint调用代码,则使用SPContext将起作用。要从URL获取SPWeb对象,您可以使用SPSite对象,即

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

'using'语句通过在相关对象上调用'Dispose()'来确保及时回收非托管资源。

HTH, JT

答案 3 :(得分:0)

非常感谢您对此的帮助。我已经使用了一些,并做了一些额外的阅读,并提出了以下内容:

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

答案 4 :(得分:0)

尽管有效,您应该真正查看与在12个配置单元和内容数据库中存储文档相关的最佳实践。

在选择旅游路线之前,应该考虑更多可扩展的答案。