2

数据库中有一个 col 声明为十进制 4 精度 3。我需要将此数字乘以 100(我在存储过程查询中这样做)并将其显示为小数点,小数点后只有有效零。如果结果值小于 1%,我想它应该在小数点前显示一个 0。显示应包括一个 % 标记。例如:

 100 %
 99.1 %
 0.1 %
 56 %
 0 %

该网页正在使用数据绑定:

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

我想我可能会更容易在数据绑定项中处理这个,甚至在那里使用字符串格式化函数。理想情况下,我想知道要在标记中使用什么格式字符串,以及如何在后面的代码中处理它。

  <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 回答