Добавление пользовательского элемента управления в веб-часть в Sharepoint 2013

у меня есть визуальная веб-часть (созданная с шаблоном standart Visual Stuido 2012 из формы "Добавить новый элемент") всего с одним <div id="newsListDiv" runat="server"></div> элемент. Я хочу программно добавить свой собственный пользовательский элемент управления, используя следующий код:

protected void Page_Load(object sender, EventArgs e)
{    
    NewsLine newsLine = Page.LoadControl(@"~/_ControlTemplates/MainTheme/NewsLine.ascx") as NewsLine;
    newsListDiv.Controls.Add(newsLine);
}

но когда я развертываю решение и добавляю веб-часть на страницу, она показывает страницу ошибки, сообщая мне, что файл '/_ControlTemplates/MainTheme/NewsLine.ascx и не существует. Но если я загляну в папку ...C:Program файлыобщие FilesMicrosoft sharedWeb Server Extensions15TEMPLATECONTROLTEMPLATESMainTheme " я вижу, что файл присутствует там. Я попытался установить уровень доверия на "полный", но получил ту же ошибку. Я также попытался добавить пользовательский элемент управления .файл ascx выглядит так:

<%@ Register Src="~/_controltemplates/MainTheme/NewsLine.ascx" TagPrefix="uc1" TagName="NewsLine" %>

<div id="newsListDiv" runat="server">
    <uc1:NewsLine runat="server" id="NewsLine" />
</div>

и таким образом получить ошибку компиляции: "имя"InitializeControl" не существует в текущем контексте". Я также заметил, что как только я добавляю Register или Reference line (с путем к моему пользовательскому элементу управления) на мой .файл ascx, the .г. cs файл становится пустым! И он снова заполняется, когда я удаляю эту линию. Я пробовал много разных путей, таких как"../_controltemplates/", "/controltemplates/15/" и т. д. Но все это не имело никакого значения. Я в отчаянии, пожалуйста помогите!

3 ответов


вы забыли попробовать еще один вариант. То же самое и при доступе к папке _layouts. Вы должны указать 15 куст.

правильный путь "~/_ControlTemplates/15

 NewsLine newsLine = Page.LoadControl(@"~/_ControlTemplates/15/MainTheme/NewsLine.ascx") 

столкнулся с той же проблемой. Я не видел предложения о добавлении 15 к пути, и это сработало для меня. Единственное другое различие между моей ссылкой и Вашей-у меня нет ~ в начале. / - Это первый символ.


У меня такая же проблема, только она работает, когда я делаю это в коде позади, но мне не везет, чтобы добавить его в ascx, как и любые другие элементы управления, которые я использую! - Боже, почему в sharepoint все должно быть по-другому?!!!!