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!
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")
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.
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?!!!!