SharePoint中不存在自定义控件异常

时间:2013-01-28 10:07:14

标签: asp.net sharepoint user-controls web-parts

我正在尝试将自定义网络UserControl添加到我的SharePoint应用程序中。我已将UserControl添加到SharePoint WebPart,现在我正尝试在我的页面中加载该WebPart。

但是当我添加WebPart时,我得到以下异常:

The file /usercontrols/Test3Report.ascx does not exist.

但我完全确定文件和文件夹都存在。用户控件的path对我来说也很好。这是我尝试加载我的控件的方式:

protected string UserControlPath = @"~/usercontrols/";
protected string UserControlName = @"Test3Report.ascx";

private Test3Report mycontrol;

protected override void CreateChildControls()
{
    try
    {
        mycontrol = (Test3Report)this.Page.LoadControl(UserControlPath + UserControlName);
        Controls.Add(mycontrol);
    }
    catch (Exception CreateChildControls_Exception)
    {
        exceptions += "CreateChildControls_Exception: " + CreateChildControls_Exception.Message;
    }
    finally
    {
        base.CreateChildControls();
    }
}

这对我来说似乎是对的。我不知道为什么抱怨我找不到Test3Report.ascx

我已经读过有关TrustLevel没有设置为full或者其他东西的东西。可能是吗?还是其他任何想法?

1 个答案:

答案 0 :(得分:0)

尝试通过右键单击VS2010中解决方案资源管理器中的解决方案来添加新的自定义控件 - >添加 - >新项目,从右侧列表中选择sharepoint2010后,选择“用户控制”。 这样您的控件将自动创建,然后部署在映射的“〜/ _ControlTemplates / PROJECTNAME / UserControlNAME.ascx”文件夹中,以后可以引用该文件夹。

通过打开解决方案资源管理器下“Package”文件夹中的“.package”文件并检查用户控件是否列在“包中的项目”下,确保用户控件包含在包中。

提示:如果可能用于您的用例,您可以将目标页面置于设计模式,然后通过拖放.ascx文件来添加自定义控件,而不是以编程方式在CreateChildControls()中添加自定义控件从解决方案资源管理器到您的页面。

我希望有帮助:)