gpt4 book ai didi

html - 如何以这种格式在 GridView 页脚和 ItemTemplate 中格式化数字 ("###,###.000")

转载 作者:行者123 更新时间:2023-11-28 08:16:03 25 4
gpt4 key购买 nike

如何以这种格式(“###,###.000”)格式化 GridView 页脚和 ItemTemplate 中的数字

html 中的页脚:

       <FooterTemplate>
<asp:Label ID="totallblCredAmount" runat="server" />
</FooterTemplate>

页脚在代码中:

 if (e.Row.RowType == DataControlRowType.Footer)
{

Label totallblCAmount = (Label)e.Row.FindControl("totallblDebAmount");
totallblCAmount.Text = ViewState["TotalPric"].ToString();

Label totallblCredAmount = (Label)e.Row.FindControl("totallblCredAmount");
totallblCredAmount.Text = ViewState["TotalPrice"].ToString();

}

元素模板 html:

 <asp:TemplateField HeaderText="credit">
<ItemTemplate>
<asp:Label runat="server" Text='<%#(Eval("credit"))%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

最佳答案

您必须将字符串值解析为十进制,然后您可以使用decimal.ToString("###,###.000")。但是如果您将 doubledecimal 值存储在 ViewState 中,您只需要相应地转换它而不是使用 ToString将其转换为 string

所以也许:

if (e.Row.RowType == DataControlRowType.Footer)
{
Label totallblCAmount = (Label)e.Row.FindControl("totallblDebAmount");
decimal pricValue = (decimal)ViewState["TotalPric"];
totallblCAmount.Text = pricValue.ToString("###,###.000");

Label totallblCredAmount = (Label)e.Row.FindControl("totallblCredAmount");
decimal priceValue = (decimal)ViewState["TotalPrice"];
totallblCAmount.Text = priceValue.ToString("###,###.000");
}

如果你存储一个字符串,你必须像前面提到的那样解析它:

 string stringPriceValue = (string)ViewState["TotalPrice"];
decimal priceValue = decimal.Parse( stringPriceValue );
totallblCAmount.Text = priceValue.ToString("###,###.000");

我建议不要将十进制数字值存储为字符串,这不仅是因为您总是必须解析它,而且主要是因为您对本地化问题持开放态度。


根据您在关于如何在 ItemTemplate 中格式化标签的评论中的问题。如果你想在 aspx 上这样做,你可以这样做:

<asp:Label  runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "credit", "{0:###,###.000}") %>' ID="LblCredit"></asp:Label>

另一种方法是使用代码隐藏。为此,我会使用 RowDataBound

protected void GrdidView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// note that i've assigned an ID to the label
Label lblCredit = (Label) e.Row.FindControl("LblCredit");
DataRow row = ((DataRowView) e.Row.DataItem).Row; // maybe you need to change the type of the dataitem
double credit = row.Field<double>("credit");
lblCredit.Text = credit.ToString("###,###.000");
}
}

关于html - 如何以这种格式在 GridView 页脚和 ItemTemplate 中格式化数字 ("###,###.000"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com