我正在使用MS WebMatrix从数据库中获取的数据创建动态CSHTML页面。我正在使用剃刀语法。
我将数据返回到我的CSHTML页面,但它有尾随数字等。例如,我想将“123.4568”格式化为“$ 123.46”
如何以我需要的格式显示结果?我还希望在达到目标时更改文本颜色等。
答案 0 :(得分:1)
您可以使用列构造函数的 format 可选参数在WebGrid中设置值的格式。
您可以尝试这样的事情,如果值> gt,发票的颜色为红色。 50或蓝色,如果不是
<html lang="en">
<head>
<style>
.column1 {color: red; font-weight: bold;}
.column2 {color: blue;}
</style>
</head>
<body>
<p>@stot1.GetHtml(
columns:stot1.Columns(
stot1.Column(
columnName:"Invoices",
format:@<text>
<span class=@(item.Invoices > 50 ? "column1" : "column2")>
@item.Invoices.ToString("C")
</span>
</text>
)
)
)</p>
</body>
</html>
但我认为没有理由在你的情况下使用WebGrids。
WebGrid帮助器从数据库呈现数据并支持分页和排序,但是您的查询只返回一个值,而您不需要其中任何一个。
<强>被修改强>
更好的解决方案是使用QueryValue方法查询表,该方法返回单个标量值,并显示不带WebGrid的值。
以下为唯一发票的示例
@{
var db = Database.Open("YourTable");
var itot = db.QueryValue("SELECT SUM(Subtotal) AS Invoices FROM Salesord_hdr where Orderdate = 41190 and Invoicecount >= 1");
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<style>
.column1 {color: red; font-weight: bold;}
.column2 {color: blue;}
</style>
</head>
<body>
<p>Invoices:
<span class=@(itot > 50 ? "column1" : "column2")>@itot.ToString("C")</span>
</p>
</body>
</html>