WebControlから継承されたサーバーコントロールを開発しました。このサーバーコントロールは、任意の数の子コントロールをラップし、それらの出力を変更します。コントロールクラスは非常に単純で、RenderContentsメソッドのみが含まれています。
これは、ページにどのように配置されたかの例です。(含まれていません:コントロール名前空間の登録。)ここでの目的は、RichImageFieldコントロールからのレンダリングされた出力が変更されることです。
<RX:HideWhitespaceControl runat="server">
<PublishingWebControls:RichImageField
FieldName="PublishingPageImage"
runat="server"
id="PageImage">
</PublishingWebControls:RichImageField>
</RX:HideWhitespaceControl>
ただし、ページを参照しようとすると、コントロールクラスのコードが実行されていないように見え、次のエラーが発生します。
パーサーエラーメッセージ:タイプ「RX.SharePoint.Common.Controls.HideWhitespaceControl」には「RichImageField」という名前のパブリックプロパティがありません。
このエラーが表示される理由について混乱しています。これはプロパティではなく子コントロールであるため、RichImageFieldという名前のパブリックプロパティは実際にはありません。
私のカスタムコントロールはページレイアウトのSharePoint発行サイトで使用されているため、このエラーがSharePointから発生したものかどうかはわかりません。しかし、それは基本的なASP.NETエラーのように見えるので、何が欠けていますか?