Ajouter le contrôle de l'utilisateur à la partie web de Sharepoint 2013

j'ai une partie Web visuelle (créée avec le modèle Standart Visual Stuido 2012 du formulaire "Ajouter un nouvel article") avec juste un <div id="newsListDiv" runat="server"></div> élément. Je tiens à ajouter par mon propre contrôle de l'utilisateur à l'aide du code suivant:

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

mais quand je déploie la solution et ajoute la partie web à la page il montre une page d'erreur, me disant que le fichier '/_ControlTemplates/MainTheme/NewsLine.ascx " n'existe pas. Mais si je regarde dans le dossier "C:Program fichiersCommon Fichiersmicrosoft sharedWeb Server Extensions15TEMPLATECONTROLTEMPLATESMainTheme " je peux voir que le fichier y est présent. J'ai essayé de mettre le niveau de confiance à "plein" mais j'ai eu la même erreur. J'ai aussi essayé d'ajouter le contrôle de l'utilisateur .fichier ascx comme ceci:

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

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

et ainsi une erreur de compilation se produit: "le nom 'InitializeControl' n'existe pas dans le contexte actuel". J'ai aussi remarqué que dès que j'ajoute un registre ou une ligne de référence (avec le chemin vers mon contrôle d'utilisateur) à mon .fichier ascx, l' .g.cs fichier est vide! Et il se remplit à nouveau quand j'enlève cette ligne. J'ai essayé beaucoup d'écritures différentes de chemin comme "../_controltemplates/","/controltemplates/ 15/", etc. Mais aucun d'eux ne fait aucune différence. Je suis désespérée ici, s'il vous plaît aider!

12
demandé sur 4tuneTeller 2013-01-10 14:08:25

3 réponses

Vous avez oublié d'essayer une option de plus. C'est la même chose pour accéder au dossier _layouts. Vous devez spécifier la ruche 15.

le chemin correct est " ~ / _ControlTemplates/ 15

 NewsLine newsLine = Page.LoadControl(@"~/_ControlTemplates/15/MainTheme/NewsLine.ascx") 
19
répondu Rick 2013-01-29 10:46:43

rencontrait le même problème. Je n'avais pas vu la suggestion d'ajouter les 15 au chemin et cela a fonctionné pour moi. La seule autre différence entre ma référence et la vôtre est que je n'ai pas le ~ au début. Le / est le premier caractère.

0
répondu Rich Ross 2013-03-26 01:20:18

j'ai ce même problème mais ça marche quand je le fais en code derrière mais je n'ai pas de chance de l'ajouter à ascx comme tous les autres contrôles que j'utilise! - Dieu, pourquoi tout serait si différent en sharepoint?!!!!

0
répondu Omid S. 2014-06-14 11:08:26