如何基于作为字符串的查询值来格式化html

时间:2014-10-02 23:06:48

标签: html css asp.net sql-server-2008 razor

使用ASP.NET razor和SQL Server 2008 R2

我有一个声明的局部变量:

var tsmMtd = db.QueryValue("  
  SELECT  b.Name, SUM(subtotal) totalSUM  
  FROM DR_TRANS a  
  INNER JOIN Staff b ON a.Salesno = b.Staffno  
  WHERE a.salesno in (12,23,28,30)  
    AND a.TRANSDATE >= dateadd(m, datediff(m, 0, getdate()), 0)   
    AND a.REF3 = 'Invoice'  
  GROUP BY b.Name  
  ORDER BY totalSUM DESC  
");

现在从表中返回一个名称数组,按销售额排序。稍后在HTML中调用它

@tsmMtd.ToString()  

打印最顶层的名称。好的,一切都好。 NOW ....

我需要根据该顶级销售人员格式化页面文本。如果他们 是顶级销售人员,我希望他们的名字变成蓝色。这就是我对销售人员的“实际销售额”数字所做的:

<span class=@(salesval12  > 6000 ? "blue" : "red")>@salesval12.ToString("C")</span>  

如果文本超过6000值,则可以更改文本的颜色。 (红色和蓝色类定义在页面的上方)。所以,我这样做了:

<span class=@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")>Charlie</span>  

但在加载失败时说编译器错误消息: CS0029:无法将类型'string'隐式转换为'bool'

好的,我需要知道的是

  1. 我做错了什么
  2. 我应该做什么
  3. 任何和所有帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

而不是

@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")

应该是

@(tsmMtd == "CHARLIE JONES" ? "blue" : "red")

你写了一个等号而不是两个。只有一个它只保存CHARLIE JONEStsmMtd变量,然后尝试将该字符串变量作为条件进行比较,并且编译器显示有关它的错误