我需要在SharePoint门户中显示外部网站,因此我添加了一个PageViewerWebPart。但该网址包含www.mywebsite.com?login=X&passwd=Y等登录参数。
我尝试在ContentLink PageViewer属性中添加ASP代码:
<WebPartPages:PageViewerWebPart runat="server" ContentLink="<% ="URL" %>" ... />
它返回给我这个错误:服务器标签不能包含&lt;%...%&gt;指令。
是否存在允许使用GET参数加载URL的其他属性? 我可以将此代码放入我的WebPartPage的CodeBehind中吗? 我实际上做错了吗?
任何帮助都会非常苛刻!
蒂莫西·马丁。答案 0 :(得分:3)
虽然我认为将用户的凭据放在URL中是个坏主意(任何人都可以通过查看页面的HTML源来看到这一点),这里是你如何完成你想要做的事情:
使用继承自Microsoft.SharePoint.WebPartPages.WebPartPage
的类创建一个新的类库项目。类似的东西:
namespace MyNameSpace.WebPagePages
{
public class MyWebPartPage : Microsoft.SharePoint.WebPartPages.WebPartPage
{
protected Microsoft.SharePoint.WebPartPages.PageViewerWebPart myPageViewerWebPart;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// logic to create your URL
string url = "http://blah/blah";
// set the URL
myPageViewerWebPart.ContentLink = url;
}
}
}
您需要签署程序集并将其部署到GAC。建议使用SharePoint解决方案(WSP)来实现此目的(但不是这个答案)。
您现在需要修改包含Web部件的ASPX页面,如下所示:
Inherits
指令的<%@ Page %>
属性更改为上述类的完全限定类型名称。它看起来像: MyNameSpace.WebPagePages.MyWebPartPage,MyNameSpace.WebPagePages,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = b538f318242c0b01 ID
属性,其值与代码隐藏类中Web部件的名称相匹配。在此示例中:<WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">
应该这样做。如果您以前没有这样做过,创建类并将其部署到GAC将是一个棘手的问题,但是当您知道如何操作时它们很容易。像VSeWSS,STSDEV和WSPBuilder这样的工具(首先学习一个,然后尝试其他工具)将通过创建WSP文件(SharePoint解决方案)帮助您实现这一目标 - 我强烈建议您采取这种方式的优点。
答案 1 :(得分:0)
如果上面的代码出现在布局页面中,那么是&lt; %%&gt;布局页面中不允许使用。我建议您在服务器端代码中设置链接。但如果您仍想使用&lt; %%&gt;请参阅此link了解如何使其发挥作用。