は、私は次のコード行で、Sharepointの2010年に視覚的なWebパーツでパネルにカスタムユーザーコントロールを追加しようとしているSharepointの2010年にユーザーコントロールを追加します私のユーザーコントロールはロード/レンダリングに失敗します。上記のコードは、リンクボタンをクリックするとトリガーされます。はプログラム
私は何かを見逃しているのですか、それともこのようにすることはできませんか?
は、私は次のコード行で、Sharepointの2010年に視覚的なWebパーツでパネルにカスタムユーザーコントロールを追加しようとしているSharepointの2010年にユーザーコントロールを追加します私のユーザーコントロールはロード/レンダリングに失敗します。上記のコードは、リンクボタンをクリックするとトリガーされます。はプログラム
私は何かを見逃しているのですか、それともこのようにすることはできませんか?
ユーザーコントロールは12/14ハイブに格納されているため、ユーザーコントロールのパスを明確に参照する必要があります。
<%@ Register TagPrefix="MyPrefix" Namespace="MyNameSpace.MyControl"
Assembly="MyAssemby"%>
<MyPrefix:MyControl ID="MyId" runat="server" />
:あなたも(あなたがそれを置くている場所によって決定される)のような何かを行うことにより、Webパーツ/ページ/コントロールに直接追加することができ、
private const string _ascxPath = @"~/_CONTROLTEMPLATES/ProjectFolder/controlname.ascx";
MyControl MyUserControl = (MyControl)LoadControl(_ascxPath);
Controls.Add(MyUserControl);
をしかし:ザッツはなぜあなたは常に行う必要があります
LoadControlメソッドを使用する必要があります。参照:How to: Create Instances of ASP.NET User Controls Programmatically
私は実際にそのアプローチを試みましたが、最初の引数としてユーザーコントロールの型を受け入れるLoadControlオーバーロードを使用しました: 'MyUserControl myUserControl =(MyUserControl)LoadControl(typeof(MyUserControl)、new object [] {}) ; ' しかし、そのアプローチは私のためには機能しませんでしたが、pユーザコントロールの物理的な位置は魅力的に働いた。最初のアプローチが私にとってうまくいかなかった理由は何ですか? –