2010-02-15 159 views
0

我正在嘗試創建一個HTML頁面,其中「正文」顏色根據從RAM收集的某些數據而變化。如果RAM填滿超過一定的閾值,那麼我想要改變顏色。動態更改HTML

<body style="background-color:<%= 
    if(MemoryPercentage < 33) 
    { 
     //set to green. 
    } 
    else if(MemoryPercentage < 66) 
    { 
     //set to yellow. 
    } 
    else 
    { 
      //set to red. 
    }%>"> 

感謝你的幫助,

亞倫

回答

4
<body 
    style="background-color:<%= MemoryPercentage < 33? "green": 
     (MemoryPercentage < 66? "yellow":"red") %>;"> 
+0

謝謝!對於這個整體而言,這個答案對我來說並不明顯。 – 2010-02-16 18:39:40

0

雖然你可以直接使用機身標籤(如this answer建議)的sytle屬性絕對適用的風格,一般最好以HTML爲中心的做法阻礙了這一點。

你應該做的是將這些樣式放置在頁面引用的樣式表中,然後爲這些類使用不同的名稱。

然後,在您的代碼中,將具有所需樣式的根據您的邏輯應用到body元素的class屬性。

4

我更喜歡使用CSS類,並將邏輯分離出來,使其更具可讀性。

<style type="text/css"> 
.warn { 
    background-color: #00ffff; 
} 
.error { 
    background-color: #ff0000; 
} 
.ok { 
    background-color: #00ff00; 
} 
</style> 

<% 
    var klass = MemoryPercentage < 33 : "ok" ? (MemoryPercentage < 66 ? "warn" : "error"); 
%> 

<body class="<%= klass %>"> 
+0

謝謝你的回答。我從上面的答案開始,但後來修改我的代碼以反映您的額外CSS提示。 ;) – 2010-02-16 18:40:04

0

只是一個拋開其他答案:

<body id="Body" runat="server">將爲Page_Load() &的朋友可以訪問標記爲HtmlGenericControl,這樣你就可以處理邏輯,並設置Body.CssClass沒有模板-Y標記。使其不那麼雜亂/易於維護。