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

0md85ypi  于 2023-02-26  发布在  .NET
关注(0)|答案(1)|浏览(96)

我正在尝试将自定义Web UserControl添加到SharePoint应用程序。我已将UserControl添加到SharePoint WebPart,现在我正在尝试在页面中加载该WebPart。
但是当我添加WebPart时,我遇到了以下异常:

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

但是我100%确定文件和文件夹都存在。我觉得用户控件的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
我读到过一些关于信任级别没有设置为满的东西。可能是这样吗?或者其他的想法?

tjrkku2a

tjrkku2a1#

尝试添加新的自定义控件,方法是在VS2010 -〉添加-〉新建项目的解决方案资源管理器中右键单击您的解决方案,从右侧列表中选择sharepoint 2010后,选择“用户控件”。这样,您的控件将自动创建,并在以后部署到Map的"~/_ControlTemplates/PROJECTNAME/UserControlNAME.ascx"文件夹中,以便以后引用。
另外,打开解决方案资源管理器下“Package”文件夹中的.“package”文件,并检查用户控件是否列在“Items in Package”下,以确保用户控件包含在包中。
提示:* 如果您的用例允许,您可以将目标页置于设计模式,然后通过将.ascx文件从解决方案资源管理器拖放到页中来添加自定义控件,而不是在CreateChildControls()中以编程方式添加自定义控件。*

相关问题