我在GridView的列部分中有以下代码:
<Columns>
<asp:boundfield datafield="Nominal-Anual" HeaderText="Nominal anual"/>
<asp:boundfield datafield="Anual" headertext="Anual" sortexpression="Anual" />
<asp:boundfield datafield="Semestral" headertext="Semestral" DataFormatString="{0:0.00}" />
<asp:BoundField DataField="Trimestral" HeaderText="Semestral" HtmlEncode="false" DataFormatString="{0:00.0000}" />
<asp:BoundField DataField="Mensual" HeaderText="Mensual" />
</Columns>
此gridview是从数据表中提供的,其中所有数据列都是字符串类型。
我的问题是DataFormatString没有被应用,我也不知道为什么。
我在所有列中都得到了很多小数,包括带有dataformatstrings的小数。
可能会发生什么?
提前致谢。
最诚挚的问候。
何
答案 0 :(得分:2)
也许格式化不起作用,因为它需要数字/十进制值而你发送字符串类型的数据?
答案 1 :(得分:1)
尝试
<asp:boundfield datafield="Semestral" headertext="Semestral" DataFormatString="{0:0.00}" HtmlEncode="false" />
我已经看到这种情况发生了,因为(如果我错了,请纠正我)在应用格式之前字段值是HtmlEncoded,使格式字符串无效。
对评论的回应:
您可以尝试使用RowDataBound事件。
当引发RowDataBound事件时 数据行(由a表示) GridViewRow对象)绑定到数据 在GridView控件中。这使得 你提供一个事件处理 执行自定义例程的方法, 比如修改值 绑定到行的数据,无论何时 事件发生。
答案 2 :(得分:1)
我很惊讶您被迫在数据库中放置字符串来代替日期。顺便说一下,改变格式:
((TextBox)e.Row.FindControl("..")).Text = MyFormatter(e.Row.DataItem);