1

私はMSWebMatrixを使用して、データベースから取得したデータから動的なCSHTMLページを作成しています。私はかみそりの構文を使用しています。

CSHTMLページに返されるデータがありますが、末尾の数字などがあります。たとえば、「123.4568」を「$123.46」にフォーマットしたいとします。

結果を必要な形式で表示するにはどうすればよいですか?また、目標に到達したときなどにテキストの色を変更したい。

4

1 に答える 1

1

列コンストラクターの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>
于 2012-10-11T10:10:46.317 に答える