2

データベースには、10 進数 4 精度 3 として宣言されている列があります。この数値を 100 倍して (ストアド プロシージャ クエリで実行しています)、小数点の後に有意なゼロのみを含む 10 進数として表示する必要があります。結果の値が 1% 未満の場合は、小数点の前に 0 を付けて表示する必要があると思います。表示には % マークが含まれている必要があります。例えば:

 100 %
 99.1 %
 0.1 %
 56 %
 0 %

Web ページはデータバインディングを使用しています:

 <asp:Label ID="lblTMLY_POL_HLDER_NOTC_PCT" runat="server" Text='<%# Eval("DECIMAL_COL_PREC_4_SCALE_3") %>'></asp:Label>

おそらく、Data Bound Item でこれを処理し、そこで文字列書式設定関数を使用する方が簡単だと思います。理想的には、マークアップで使用するフォーマット文字列と、コードビハインドでこれをどのように処理するかを知りたいです。

  <asp:Label ID="lblTMLY_POL_HLDER_NOTC_PCT" runat="server" Text='<%# Eval("DECIMAL_COL_PREC_4_SCALE_3","{00:??????}") %>'></asp:Label>
4

1 に答える 1

3

これはあなたが探しているものですか?

ここに画像の説明を入力

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField HeaderText="Id" DataField="Id" />
        <asp:BoundField HeaderText="Name" DataField="Name" />
        <asp:BoundField HeaderText="Actual Value" DataField="Total" />
        <asp:BoundField HeaderText="Using Bound Field" DataField="Total" 
            DataFormatString="{0:0.### %}" />
        <asp:TemplateField HeaderText="Using Eval">
            <ItemTemplate>
                <asp:Label runat="server" ID="Label1" 
                    Text='<%# string.Format("{0:0.### %}", Eval("Total")) %>'>
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

private class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Total { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    var items = new List<Item>
        {
            new Item {Id = 1, Name = "One", Total = 1.0M},
            new Item {Id = 2, Name = "Two", Total = 0.2M},
            new Item {Id = 3, Name = "Three", Total = 0.03M},
            new Item {Id = 4, Name = "Four", Total = 0.004M},
            new Item {Id = 5, Name = "Five", Total = 0.0005M},
            new Item {Id = 6, Name = "Six", Total = 0.00006M},
        };

    GridView1.DataSource = items;
    GridView1.DataBind();
}
于 2013-04-30T14:41:18.887 に答える