2016-03-04 47 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文件控制颜色和显示,而不必在这里重写源代码。 –

相关问题