2016-03-04 81 views
0

我真的沒有經驗使用HTML 5,並認爲我會看看如果這是可能的或不。有沒有辦法讓HTML5根據負值或正值改變文本顏色?

無論如何,我可以在這裏使用HTML5將文本顏色更改爲紅色,如果該值爲負值?

試圖避免現在使用JavaScript或Jquery。

此代碼的輸出文件將發送到HTML文件。

vWriteFile.WriteLine("<tr>" + "<td>" + key + "</td>" + "<td>" + iSumOpen + "</td>" + "<td>" + iSumBuy + "</td>" 
       + "<td>" + iSumSell + "</td>" + "<td>" + iSumSettleMM + "</td>" + "</tr>"); 

這裏是整個方法:

public void printToHTML(string vOutputPath) 
    { 
     StreamWriter vWriteFile = new StreamWriter(vOutputPath); 
     vWriteFile.WriteLine("<table style=\"width:100%\">"); 
     vWriteFile.WriteLine("<tr>" + "<td>" + "<b>Account</b>" + "</td>" + "<td>" + "<b>Open</b>" + "</td>" + "<td>" + "<b>Buy</b>" + "</td>" 
       + "<td>" + "<b>Sell</b>" + "</td>" + "<td>" + "<b>SettleMM</b>" + "</td>" + "</tr>"); 
     foreach (KeyValuePair<string, List<DataRecord>> kvp in vSummaryResults) 
     { 
      string key = kvp.Key; //assigns key 
      List<DataRecord> list = kvp.Value; //assigns value 

      int iSumOpen = 0; 
      int iSumBuy = 0; 
      int iSumSell = 0; 
      double iSumSettleMM = 0; 

      foreach (DataRecord rec in list) 
      { 
       if (vSummaryResults.ContainsKey(key)) 
       { 

        iSumOpen += rec.open; 
        iSumBuy += rec.buy; 
        iSumSell += rec.sell; 
        iSumSettleMM += rec.settleMM; 

       } 

       else 
       { 
        vSummaryResults.Add(key, list); 
       } 

      } 
      Console.WriteLine(key + "\t" + iSumOpen + "\t" + iSumBuy + "\t" + iSumSell + "\t" + iSumSettleMM + "\t"); 
      Console.WriteLine("---------------------------------------------------------------------"); 

      //vWriteFile.WriteLine("{0},{1},{2},{3},{4}", key, iSumOpen, iSumBuy, iSumSell, iSumSettleMM); 
      vWriteFile.WriteLine("<tr>" + "<td>" + key + "</td>" + "<td>" + iSumOpen + "</td>" + "<td>" + iSumBuy + "</td>" 
       + "<td>" + iSumSell + "</td>" + "<td>" + iSumSettleMM + "</td>" + "</tr>"); 
     } 
     vWriteFile.WriteLine("</table>"); 
     vWriteFile.Close(); 
    } 
+1

設置顏色實際上它比CSS中直接用HTML做的更多。由於您是從C#代碼生成標記,您是否嘗試過基於相關值設置CSS類? – ThatBlairGuy

+0

在您向我們展示的方法中進行。分解你的連接並放置一個'if'語句或者使用?/:運算符。 – Zuzlx

+0

@ThatBlairGuy這是我最終會使用的是CSS。只是好奇,因爲我不知道HTML5。 –

回答

0

編輯:由於彌敦道K的評論所指出的,你應該使用CSS類。我認爲最好的方法是使用某種三元聲明:

vWriteFile.WriteLine("<tr><td class=\"" + value < 0 ? "negative" : "positive" + "\">" + value + "</td></tr>"); 

較早的答案可能也行:

你可以使用一些條件,如:

if(value < 0) { 
    vWriteFile.WriteLine("<tr><td style=\"background-color:red;\">" + value + "</td></tr>"); 
} 
else { 
    vWriteFile.WriteLine("<tr><td>" + value + "</td></tr>"); 
} 
+0

更好的可能是給它一個類,這樣可以用CSS文件控制顏色和顯示,而不必在這裏重寫源代碼。 –

相關問題