<div id="newsListDiv" runat="server"></div>
要素を1つだけ持つ視覚的なWebパーツ(「新しいアイテムの追加」フォームからstandart Visual Stuido 2012テンプレートで作成)があります。私は、プログラムで次のコードを使用して、それを自分自身のユーザーコントロールを追加したい:Sharepoint 2013のWebパーツにユーザーコントロールを追加する
protected void Page_Load(object sender, EventArgs e)
{
NewsLine newsLine = Page.LoadControl(@"~/_ControlTemplates/MainTheme/NewsLine.ascx") as NewsLine;
newsListDiv.Controls.Add(newsLine);
}
をしかし、私はソリューションを展開し、ページにWebパーツを追加するとき、それは私に言って、エラーページを示しているファイル「/ _ControlTemplates/MainTheme/NewsLine.ascx 'は存在しません。しかし、フォルダ "C:¥Program Files¥Common Files¥Microsoft Shared¥Web Server Extensions¥15¥TEMPLATE¥CONTROLTEMPLATES¥MainTheme"を調べると、ファイルが存在することがわかります。信頼レベルを "Full"に設定しようとしましたが、同じエラーが発生しました。
<%@ Register Src="~/_controltemplates/MainTheme/NewsLine.ascx" TagPrefix="uc1" TagName="NewsLine" %>
<div id="newsListDiv" runat="server">
<uc1:NewsLine runat="server" id="NewsLine" />
</div>
そして、そのようにコンパイルエラーを取得:「名前 『をInitializeControl』は現在のコンテキスト内に存在しない」私はまた、このようた.ascxファイルにユーザーコントロールを追加してみました。また、RegisterまたはReferenceライン(ユーザコントロールへのパスを含む)を.ascxファイルに追加すると、.g.csファイルが空になります。私はその行を削除すると、もう一度いっぱいになります。私は "../_controltemplates/"、 "/ controltemplates/15 /"のような多くの異なるパスの書き出しを試みましたが、どれも違いはありませんでした。私はここで必死になってきて、助けてください!
これも試しましたが、まだ運がありません。 .g.csファイルを自動的に生成するツールにはいくつか問題があるようです。 VSを再インストールしようとしましたが、それでもどちらも役に立ちませんでした。私は今、UserControlsを使用しないことにしましたが、マップされたフォルダではなく、VS内にControlTemplatesフォルダを作成したため、機能しない可能性があります。後でそれをチェックしようとしています... – 4tuneTeller
ここで同じ問題が解決しました! Thnx aトン。 – ChiYoung
それは私のためにも働いた..ありがとう:)! – Muhammedh