WebPartRenderControlはコンテンツをレンダリングしません
-
29-10-2019 - |
質問
RenderContentsメソッドを呼び出そうとしているカスタムWebパーツがありますが、結果にはWebパーツの周囲のdivのみが含まれ、子コントロールは含まれていません。
この単純なWebパーツを例にとってみましょう: ジェネラコディセタグプレ
次に、httpハンドラーで、このWebパーツをインスタンス化し、そのRenderControlメソッドを呼び出そうとしています。結果は<div class="myTestWebPart"></div>
です。
CreateChildControlsからコントロールが出力に追加されない理由を誰かが知っていますか?
解決
これは、コントロールをインスタンス化してRenderControlを呼び出すだけで、コントロールコレクションに追加しない場合、すべてのイベントを発生させるページライフサイクルの一部ではないためです。
特に、EnsureChildControlを呼び出すPreRenderingは呼び出されません。
簡単な解決策は、次のようにレンダリングをオーバーライドすることです。 ジェネラコディセタグプレ
他のヒント
createchildコントロールで記述するのではなく、renderメソッドでコードを記述することをお勧めします
所属していません StackOverflow