在 aspx 标记中将 Web 部件添加到 sharepoint 页面
我有一个 aspx 页面,该页面被复制到 Project Server 安装的布局目录中。 aspx 是一个具有 Web 部件区域的 Web 部件页面。 如何在 Web 部件区域内的页面标记中添加 Web 部件?
I have an aspx page that get copied in the layouts directory of a Project Server instalation. The aspx is a web part page that has a web part zone. How can I add a web part in the markup of the page, within the web part zone?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 SPLimitedWebPart 管理器在运行时添加 Web 部件的实例。 我在 MySites 上执行此操作,以控制组织所需的 Web 部件的添加、删除和移动。 您可以将代码放在aspx页面中。
您可能需要执行不同的操作才能访问布局页面的 Web 部件管理器。 之后,您需要重定向回页面以显示更改。 您还需要存储一个位值,以确保您不会在每次后续访问时执行该操作。
如果您只需要执行一次此操作,那么我可能会推荐使用 PowerShell。
否则,您可以通过注册标签直接在标记中添加 Web 部件:
并直接添加 Web 部件,
但我们没有在 Web 区域内执行此操作,因为我们不想允许它被删除,所以我不知道如果它在那种情况下有效。 这是最简单的,但不允许进行任何自定义,并且 SharePoint 并不真正“了解”Web 部件。
You can use the SPLimitedWebPart manager to add an instance of a web part at runtime. I do this on our MySites to control adding, deleting and moving web parts that the organization requires. You can put the code in the aspx page.
You may need to do something different to gain access to the Web Part Manager for your layouts page. After this you need to redirect back to the page to display the changes. You'll also want to store a bit value to ensure that you do not perform the action on each subsequent visit.
If you only need to do this once then I might recommend PowerShell instead.
Otherwise you can add the web part directly in MarkUp by registering the tag:
and directly adding the web part,
but we didn't do it inside of a web zone because we did not want to allow it to be removed so I do not know if it works in that scenario. This is easiest but doesn't allow for any customization and SharePoint doesn't really "know" about the web part.
您不能在布局目录中拥有可自定义的 Web 部件页面! 仅存储在 SPWeb 中的文档库或其他文件夹中的 Web 部件页(即您可以获得 SPFile 引用的 ASPX 文件)支持此功能。 布局目录中 ASPX 页面上的 Web 部件必须作为 Web 控件添加到 ASPX 源中。
You cannot have customizable Web Part pages in the layouts directory! This is only supported on Web Part pages stored in a document library or other folder in an SPWeb, i.e. ASPX files that you can get an SPFile reference to. Web Parts on ASPX pages in the layouts directory must be added as Web controls in the ASPX source.