1

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

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

我看过 SPSite 和 SPWeb,但似乎都不能完全满足我的要求。

任何和所有的帮助将不胜感激。

非常感谢

c#新手

4

5 回答 5

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

于 2009-01-08T15:52:26.943 回答
0

帕特里克,

我希望你喜欢 C# 和 SharePoint!

在这里查看文章。

通读一遍,它应该会为您提供所需的所有帮助。

缺口。

于 2009-01-08T15:56:39.603 回答
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

于 2009-01-09T14:04:21.913 回答
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;
}
于 2009-01-19T16:10:44.060 回答
0

尽管这可能很有效,但您应该真正研究最佳实践,因为它们与将文档存储在 12 个配置单元中而不是内容数据库中有关。

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

于 2009-03-19T19:46:19.777 回答