我有一个模板字段,如下所示在GridView控件中。
<asp:TemplateField HeaderText="Total" SortExpression="CYTotal">
<ItemTemplate>
<asp:Label ID="lblCYTotal" runat="server" MaxLength="20" Width="30" ReadOnly ="true"
Text = '<%# Bind("CYTotal","{0:#,##0}") %>' Font-Names="Tahoma" Font-Size="8pt"> </asp:Label>
</ItemTemplate>
<HeaderStyle Width="30px" Font-Names="Tahoma" Font-Size="8pt"/>
<ItemStyle Width="30px" HorizontalAlign="Right" />
</asp:TemplateField>
我在RowDataBound事件中设置模板字段内的标签格式,如下所示
if (accountTextBox.Text != "Gross Margin")
{
lblCYTotal.Text = String.Format("{0:$#,##0}", Convert.ToDecimal(lblCYTotal.Text));
}
else if (accountTextBox.Text == "Gross Margin")
{
lblCYTotal.Text = String.Format("{0:P0}", Convert.ToDecimal(lblCYTotal.Text));
}
然后,在RowUpdating事件中,我使用下面的代码,但它给了我错误&#34; *输入字符串不正确格式 * t&#34;。 我尝试删除&#34;%&#34;签名使用“替换”如下,但没有运气。我也尝试过使用NumberStyles.Currency和NumberStyles.Float。
decimal currency = decimal.Parse(lblCYTotal.Text.Replace("%",""), NumberStyles.Any);
任何帮助都将非常感谢!!!
答案 0 :(得分:0)
我在后面的代码中有if语句来检查NULLS并且只格式化非空值,但它没有用。