0

私はWeb開発者向けのMicrosoft試験(asp.net 4.0)の勉強をしていますが、次の質問に出くわしました。

まだ定義されていないコントロール属性に適用されるように、Fabrikamという名前のテーマをプログラムで適用する必要があります。つまり、テーマがコントロール属性をオーバーライドすることは望ましくありません。次のコードサンプルのどれがこれを正しく行いますか?

(A)

void Page_PreInit(object sender, EventArgs e)

{

this.StyleSheetTheme = "Fabrikam";

}

(B)

public override String StyleSheetTheme

{ get { return "Fabrikam"; }

}*

オプションBが回答として選択されています。

オプションAが答えにならないのはなぜですか、StyleSheetThemeはコントロール属性をオーバーライドしませんか?

4

1 に答える 1

0

テーマがコントロールに適用されるのは page_init イベントです

各コントロールは、最初に .aspx マークアップで設定された属性を使用して作成され、次にテーマ ファイルに保存されている設定が割り当てられます。このように、テーマ設定は対応するマークアップ設定をオーバーライドします。テーマが設定されていないプロパティは、.aspx ファイルに設定された元の値を保持します。

そのため、Page_Init でテーマを割り当てないと、それらは優先されず、既存のコントロール属性を上書きしません。

于 2012-05-17T09:15:30.893 に答える