创建加载用户控件的 SharePoint 2013 Web 部件

Posted

技术标签:

【中文标题】创建加载用户控件的 SharePoint 2013 Web 部件【英文标题】:Create SharePoint 2013 web part that loads user controls 【发布时间】:2017-05-24 03:40:08 【问题描述】:

我需要创建一个将用户控件加载到其中的 Web 部件。 我找到的所有答案要么已过时,要么不起作用。

我正在使用 Visual Studio 2015 和 SharePoint 2013。 我用我的用户控件和其他的 Web 部件创建了一个项目,但我不知道如何链接它们...

有什么帮助吗? 谢谢

【问题讨论】:

【参考方案1】:

如果您的 webpart 不是 Visual webpart,您可以像这样加载用户控件(在 webpart cs 文件中):

namespace ProjectName.Folder.Custom_Webpart

    [ToolboxItemAttribute(false)]
    public class Custom_Webpart : System.Web.UI.WebControls.WebParts.WebPart
    
        private const string _ascxPath = @"~/_CONTROLTEMPLATES/15/ProjectName/Folder/Custom_UserControl.ascx";

        protected override void CreateChildControls()
        
            var control = Page.LoadControl(_ascxPath) as Custom_UserControl;
            //this.ChromeType = PartChromeType.None;
            Controls.Add(control);
        
    

如果您的 Web 部件是可视 Web 部件,您可以加载用户控件,在您的 Web 部件 .ascx 文件中插入以下说明:

<%@ Register Src="/_controltemplates/15/ProjectName/Folder/Custom_UserControl.ascx" TagPrefix="Custom" TagName="CustomControl" %>

<Custom:CustomControl runat="server" />

【讨论】:

感谢您的回复。我会试试的。 是否需要在任何特定位置部署用户控制项目? 自定义用户控件应部署到 SharePoint 映射文件夹 (CONTROLTEMPLATES)。看这里:blogs.msdn.microsoft.com/vssharepointtoolsblog/2010/03/12/… 你好。我在我的 sharepoint webpart 项目中创建了一个映射文件夹(到 controltemplates)。现在,我是否将现有项目(用户控件)添加到该文件夹​​?还是有其他方法?谢谢 只需将用户控件(在 Visual Studio 上)拖放到映射文件夹中(并更改控件注册 src/路径)。看看这里。 msdn.microsoft.com/en-us/library/ee231577(v=vs.120).aspx 或这里。 c-sharpcorner.com/article/…

以上是关于创建加载用户控件的 SharePoint 2013 Web 部件的主要内容,如果未能解决你的问题,请参考以下文章

在 Sharepoint 2013 中将用户控件添加到 Web 部件

将内容编辑器 Web 部件添加到 sharepoint 2010 用户控件

Sharepoint:Web 部件与 ASP.NET 用户控制

具有许多用户控件的共享点 webpart

sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法

Sharepoint webparts - 在 .designer.cs 文件中作为基本 UserControl 生成的自定义用户控件