と呼ばれています。
VSはデザイナに表示されているときに実際に.ascxユーザコントロールコードを実行しませんが、マークアップのみを解析するため、条件付きでコントロールを変更することはできません。
ただし、実際のASP.NETサーバーコントロールを使用する場合、その制限はアクティブではありません。あなただけのコントロールを追加し、あなたの.aspxファイルに次に
protected override void RenderContents(HtmlTextWriter output)
{
if (DesignMode)
output.Write("<table style='border-color:Black;background-color:Gray'><tr><td width=300px height=100px style='vertical-align:middle;text-align:center'>I'm your design time box.</td></tr></table>");
else
output.Write("Runtime text lalala");
}
::ちょうどそのタイプのソリューションへとあなたは.csファイルに新しいプロジェクト、overrite RenderContents
を追加
<body>
<form id="form1" runat="server">
<div>
<cc1:ServerControl1 ID="ServerControl1" runat="server" />
</div>
</form>
</body>
設計時の結果:
実行時間結果:
私が設計中にカスタムレンダリングロジックを作成するために、過去にあることを使用しています。どのように私はそのプロパティを使用して灰色のボックスをレンダリングさせるのか説明できますか?以下は私が参照している "グレーボックス"の例です:http://www.shotdev.com/wp-content/uploads/2010/01/aspnet_objectdatasource12.jpg –
あなたの 'Load'イベントでプロパティをチェックし、コントロールのデザイン部分またはランタイム部分を条件付きで表示させます。あなたは描画され、コントロール自体に入る準備ができているでしょう。 – Blindy
@Blindy:私は 'Render *'メソッドをオーバーライドしようとしました。私は 'Controls'をクリアし、' CreateControlCollection'をオーバーライドし、 '新しいEmptyControlCollection(this)'を返しました。何も動作していないようです。私は 'DesignMode'がどのように動作し、どのようにカスタムロジックを追加するために使用できるのか理解しています。しかし、私はそのカスタムロジックがあると、どのように灰色のボックスを表示させるのですか? –