Asp.net 在GridView中显示小数点后2位的数字
我在一个.aspx页面中有一个GridView,正在这个网格中显示动态数据,设置为Asp.net 在GridView中显示小数点后2位的数字,asp.net,gridview,asp.net-3.5,Asp.net,Gridview,Asp.net 3.5,我在一个.aspx页面中有一个GridView,正在这个网格中显示动态数据,设置为AutoGenerateColumns=“True” 根据用户在组合框中选择的选项,我将不同的数据表绑定到GridView。例如,如果用户选择Persons,则我获取Persons数据表;如果用户选择Products,则我获取Products数据表 如何在GridView中显示小数点后2位的浮点数或双精度数?绑定列应具有DataFormatString列。你可以这样做: DataFormatString=“{0:0
AutoGenerateColumns=“True”
根据用户在组合框中选择的选项,我将不同的数据表绑定到GridView。例如,如果用户选择Persons,则我获取Persons数据表;如果用户选择Products,则我获取Products数据表
如何在GridView中显示小数点后2位的浮点数或双精度数?绑定列应具有DataFormatString列。你可以这样做:
DataFormatString=“{0:0.00}”
更新
如果是AutoGenerateColumns=“true”
。。。我必须知道更多关于绑定内容的细节,但这里有一些途径可以探索:
在GridView中格式化内容有两种简单的方法。第一个在前面的回答中给出-使用DataFormatString。第二种方法听起来似乎适用于您动态加载网格的情况,即更改进入网格的数据
因此,与其返回一个数字并尝试格式化它,不如返回一个格式化的数字并让GridView显示它。您可以在GridView中写入BoundField:
<asp:BoundField DataField="amount" DataFormatString="{0:n}" />
您还可以在GridView中编写TemplateField
<asp:TemplateField>
<ItemTemplate>
<%#Eval("amount","{0:n}")%>
</ItemTemplate>
</asp:TemplateField>
这适用于模板列,比如说,如果您想要一个小数点到两位的比率(如1:3)
如果您使用的是
DataFormatString
,但它似乎没有起作用,请添加HtmlEncode=“false”
,例如:
<asp:BoundField DataField="DateScheduled" HeaderText="Date Created" DataFormatString="{0:D}" HtmlEncode="false"/> // date format
<asp:BoundField DataField="Amount" HeaderText="Pay This Amount" DataFormatString="{0:F}" HtmlEncode="false"/> // number format
//日期格式
//数字格式
您可以在边界字段中执行DataFormatString=“{0:n2}”
<asp:TemplateField HeaderText="Prev Salary" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblGrdSalary" runat="server" Text='<%#Bind("Salary", "{0:n}") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" Width="70px" />
</asp:TemplateField>
ok,我正在将DataTable绑定到gridview。实际上,我正在根据用户选择的条件将不同的DataTable绑定到同一个gridview,意思是假设我在组合框1.Persons和2.Products中有两个选项,所以如果用户选择了Persons,那么我将获取Persons数据表并将其绑定到GridView,如果用户选择了Products,那么我将获取Products数据表并将其绑定到GridView。看起来这可能会带来更多麻烦。您可以有两个GridView,一个是按您希望的方式为人员配置的,另一个是按产品配置的,然后根据需要隐藏一个并显示另一个吗?如果没有,您可能仍然可以检查RowDataBound上的每一列,并根据您的喜好设置值的格式。感谢HackedByChinese,实际上我在combo中有8个选项。:)但是感谢您的即时回复。我正在尝试这样的操作-'>它将所有值显示为2。我错在哪里?
<asp:TemplateField HeaderText="Prev Salary" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblGrdSalary" runat="server" Text='<%#Bind("Salary", "{0:n}") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" Width="70px" />
</asp:TemplateField>