我正在开发一个SharePoint Web部件,该部件在页面上的不同div中显示许多不同的报告。在其中一个div中,我需要显示我们存储在SharePoint中“Documents”容器中的页面中的HTML。 HTML页面中的信息是从应用程序的几个不同部分检索的,并以不同的方式显示,因此基本上我们将其用作源数据。我正在尝试弄清楚如何从应用程序中访问该页面,并希望将链接存储到文件作为可配置设置,以便我可以为我们的dev / test / prod环境进行设置。
我已将HTML文件加载到“Documents”文件夹中,如果我手动浏览它,它会显示正常但如果我使用以下内容:
final CellStyle cellStyle = wb.createCellStyle();
//cellStyle.setFillPattern(FillPatternType.ALT_BARS);
XSSFCellFill fill = new XSSFCellFill(CTFill.Factory.newInstance());
final CTGradientFill ctGradientFill = fill.getCTFill().addNewGradientFill();
ctGradientFill.setDegree(45);
// ...
((XSSFWorkbook)wb).getStylesSource().putFill(fill);
cell.setCellStyle(cellStyle);
我收到403错误,并在响应标题中显示消息“在从此位置打开文件之前,您必须首先浏览到该网站并选择自动登录的选项”。
我认为RunWithElevatedPriveleges会传递凭据,但我对SharePoint很新。不确定我是否使用了正确的方法,感谢任何帮助。
答案 0 :(得分:0)
将页面放入标准文档库,然后使用页面查看器Web部件。站点资产库用于其他自定义目的。您甚至不需要SharePoint Designer。页面查看器应设置为“网页”,因为网页查看器本质上是一个IFRAME。
如果仍然有问题......可能是Web应用程序级别的设置导致非Microsoft文件出现问题
转到中央管理员>管理Web应用程序。然后我选择了我的Web应用程序并单击了“常规设置”按钮。然后我将浏览器文件处理从“严格”更改为“允许”,这解决了我的问题。我已经包含了设置的附件,因此您可以阅读与之相关的文本。
答案 1 :(得分:0)
想出来。存在许多权限问题,但是一旦对这些权限进行了排序,这些代码就会起作用:
using (SPSite site = new SPSite(SPContext.Current.Site.ID))
{
using (SPWeb web = site.OpenWeb())
{
SPFolder folder = web.GetFolder("MainFolder/Lists/MainFolderDocs");
if (folder.Exists)
{
SPFile file = web.GetFile("/MainFolder/Lists/MainFolderDocs/Mainlist.html");
if (file.Exists)
{
using (System.IO.StreamReader reader = new System.IO.StreamReader(file.OpenBinaryStream()))
{
string htmlCode = reader.ReadToEnd();
lChecklist.Text = htmlCode;
}
}
}
}
}