Sql 格式化html的查询输出
我正在使用MS WebMatrix从数据库中获取的数据创建一个动态CSHTML页面。我正在使用razor语法 我将数据返回到我的CSHTML页面,但它有尾随数字等。例如,我想将“123.4568”格式化为“$123.46”Sql 格式化html的查询输出,sql,razor,formatting,webmatrix,Sql,Razor,Formatting,Webmatrix,我正在使用MS WebMatrix从数据库中获取的数据创建一个动态CSHTML页面。我正在使用razor语法 我将数据返回到我的CSHTML页面,但它有尾随数字等。例如,我想将“123.4568”格式化为“$123.46” 如何以所需的格式显示结果?我还想在达到目标时更改文本颜色,等等。您可以使用列构造函数的格式可选参数设置WebGrid中的值格式 您可以尝试这样的方法,如果值>50,发票的颜色为红色,否则为蓝色 <html lang="en"> <head>
如何以所需的格式显示结果?我还想在达到目标时更改文本颜色,等等。您可以使用列构造函数的格式可选参数设置WebGrid中的值格式 您可以尝试这样的方法,如果值>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>
.column1{颜色:红色;字体大小:粗体;}
.column2{颜色:蓝色;}
@stot1.GetHtml(
列:stot1.columns(
stot1.列(
栏目名称:“发票”,
格式:@
50?“第1列”:“第2列”)>
@项目.发票.ToString(“C”)
)
)
)
但我认为在你的情况下没有理由使用WebGrids
WebGrid helper呈现数据库中的数据,并支持分页和排序,但您的查询只返回一个值,您不需要它们中的任何一个
已编辑
更好的解决方案是使用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>
@{
var db=Database.Open(“YourTable”);
var itot=db.QueryValue(“选择SUM(小计)作为Salesord_hdr中的发票,其中Orderdate=41190,Invoicecount>=1”);
}
.column1{颜色:红色;字体大小:粗体;}
.column2{颜色:蓝色;}
发票:
50 ? “column1”:“column2”)>@itot.ToString(“C”)
您可以使用列构造函数的format可选参数设置WebGrid中的值格式
您可以尝试这样的方法,如果值>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>
.column1{颜色:红色;字体大小:粗体;}
.column2{颜色:蓝色;}
@stot1.GetHtml(
列:stot1.columns(
stot1.列(
栏目名称:“发票”,
格式:@
50?“第1列”:“第2列”)>
@项目.发票.ToString(“C”)
)
)
)
但我认为在你的情况下没有理由使用WebGrids
WebGrid helper呈现数据库中的数据,并支持分页和排序,但您的查询只返回一个值,您不需要它们中的任何一个
已编辑
更好的解决方案是使用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>
@{
var db=Database.Open(“YourTable”);
var itot=db.QueryValue(“选择SUM(小计)作为Salesord_hdr中的发票,其中Orderdate=41190,Invoicecount>=1”);
}
.column1{颜色:红色;字体大小:粗体;}
.column2{颜色:蓝色;}
发票:
50 ? “column1”:“column2”)>@itot.ToString(“C”)
您可以使用c
字符串格式-请参阅一些有帮助的内容,谢谢。我无法让代码接受我的格式,所以我使用了错误的语法(再次!)下面是字符串:var itot=db.Query(“选择SUM(小计)作为来自dbo.SALESORD_HDR的发票,其中ORDERDATE=41190,INVOICECOUNT>=1”);var stotl=新的WebGrid(来源:itot);var qtot=db.Query(“选择SUM(小计)作为来自dbo.SALESORD_HDR的报价,其中ORDERDATE>41190”);var qtotl=新的WebGrid(来源:qtot);然后我以html的形式呈现结果:@qtotl.GetHtml()@stotl.GetHtml()您可以使用c
字符串格式-请参阅一些有用的内容,谢谢。我无法让代码接受我的格式,所以我使用了错误的语法(再次!)下面是字符串:var itot=db.Query(“选择SUM(小计)作为来自dbo.SALESORD_HDR的发票,其中ORDERDATE=41190,INVOICECOUNT>=1”);var stotl=新的WebGrid(来源:itot);var qtot=db.Query(“选择SUM(小计)作为来自dbo.SALESORD_HDR的报价,其中ORDERDATE>41190”);var qtotl=新的WebGrid(来源:qtot);然后我以html的形式呈现结果:@qtotl.GetHtml()@stotl.GetHtml()好的,那么如何让它只显示我需要的单个结果呢?如果我只是插入@var,我会得到一个代码文本字符串。很抱歉这么厚,但是我该怎么做才能让数据显示出我想要的内容呢?我会更好地使用纯HTML页面而不是CSHTML和Razor吗?好的,那么我如何让它只显示我需要的单一结果呢?如果我只是插入@var,我会得到一个代码文本字符串。很抱歉这么厚,但是我该怎么做才能让数据显示出我想要的内容呢?使用纯HTML页面而不是CSHTML和Razor会更好吗?