私はMSWebMatrixを使用して、データベースから取得したデータから動的なCSHTMLページを作成しています。私はかみそりの構文を使用しています。
CSHTMLページに返されるデータがありますが、末尾の数字などがあります。たとえば、「123.4568」を「$123.46」にフォーマットしたいとします。
結果を必要な形式で表示するにはどうすればよいですか?また、目標に到達したときなどにテキストの色を変更したい。
私はMSWebMatrixを使用して、データベースから取得したデータから動的なCSHTMLページを作成しています。私はかみそりの構文を使用しています。
CSHTMLページに返されるデータがありますが、末尾の数字などがあります。たとえば、「123.4568」を「$123.46」にフォーマットしたいとします。
結果を必要な形式で表示するにはどうすればよいですか?また、目標に到達したときなどにテキストの色を変更したい。
列コンストラクターの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>
しかし、あなたの状況でWebGridを使用する理由はわかりません。
WebGridヘルパーは、ページングと並べ替えをサポートするデータベースからデータをレンダリングしますが、クエリは1つの値のみを返すため、どちらも必要ありません。
編集済み
より良い解決策は、単一のスカラー値を返す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>