2009-07-10 32 views
0

ファイルの背後にあるファイルの1つがブール値(データベースから読み取ったもの)をcorresponding.aspxファイルに送信しています。私はこのブール値に基づいてコンテナ部門のCSSスタイルクラスを変更したいと思います。私はそれを次の方法を実行しようとしました、ファイルの後ろにasp.netの.aspxファイルの 'If'ステートメントの処理

コード:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Result.InnerText = "false"; //In real scenario, this is retrieved from a db 
} 

のaspxファイル:

<form id="form1" runat="server"> 
<% if (Result.InnerText == "true") { Result.Style["Color"] = "#000000"; } else { Result.Style["Color"] = "#ff0000"; } %> 
<div id="Result" runat="server"> 
</div> 
</form> 

そのが正常に動作しているようだが、私はこのスニペットに満足していないです。これはそれを行う方法ですか?私はそれを正しくやっているのですか?

UPDATE:

がこれを行うには、他の方法はありますか?もしそうなら、どちらが良いでしょうか?注:必要に応じてCSSクラス名を変更できる必要があります。

答えて

2

DBから変数の値を取得する行の後に、色をc#(コードビハインド)で設定できます。

Result.Style["Color"] = (myDBVariable == "false") ? "#000000" : "#ff0000"; 
+0

私にはない、あなたの.aspxの中でこれを行いますファイルの背後にあるコードからスタイルを制御したい – sudarsanyes

+0

なぜですか?何か特別な理由? C#コード(コードビハインドまたはaspxページのインライン)を記述すると、1つのクラスファイルになります。 – shahkalpesh

+0

それはプレゼンテーションロジックですね。ビジネスロジックファイルから切り離したいと思っています – sudarsanyes

3

あなたの結果部門はコードビハインドに組み込まれているので、ifステートメントをASPXに配置する必要はありません。

protected void Page_Load(object sender, EventArgs e) 
{ 
    Result.InnerText = "false"; //In real scenario, this is retrieved from a db 

    if (Result.InnerText == "true") { 
     Result.Style["Color"] = "#000000"; 
    } else { 
     Result.Style["Color"] = "#ff0000"; 
    } 
} 
+1

私はファイルの背後にあるコードからスタイルを制御したくない – sudarsanyes

2

まず、公共変数、たとえばresultを作成します。

<div id="result" class='<%=(result?"someClass":"someOtherClass") %>'> 
    Your text 
</div> 

それとも、バックエンド(.aspxの)上でそれをすべて行いたい場合:

<div id="result" runat="server"> 
    Your text 
</div> 

は.cs

if (result) { 
    result.CssClass = "yourClass"; 
} else { 
    result.CssClass = "anotherClass"; 
} 
+0

これについて少し説明できますか? – sudarsanyes

+0

c#には "iif"がありません。私はそれがこれでなければならないと思う... 結果? "someClass": "someOtherClass" – herbrandson

+0

ああ...よく動く:P ...更新された... – Jason

関連する問題