使用 DataFormatString 属性来提供列中各项的自定义格式。数据格式字符串由以冒号分隔的两部分组成,形式为 {A:Bxx}。例如,格式化字符串 {0:D2} 将单元格格式化为显示一个包含两个小数位数的数字。注意 整个字符串必须放在大括号内,表示它是格式字符串,而不是原义字符串。大括号外的任何文本均显示为原义文本。 冒号前的值(常规示例中为 A)指定在从零开始的参数列表中的参数索引。注意 此值只能设置为 0,因为每个单元格中只有一个值。 冒号后的字符(一般示例中为 B)指定值的显示格式。下表列出了一些常用格式。格式字符 说明 C 以货币格式显示数值。 D 以十进制格式显示数值。 E 以科学记数法(指数)格式显示数值。 F 以固定格式显示数值。 G 以常规格式显示数值。 N 以数字格式显示数值。 X 以十六进制格式显示数值。 注意 除 X 以指定的大小写形式显示十六进制字符之外,其他格式字符不区分大小写。 格式字符后的值(一般示例中为 xx)指定显示的值的有效位数或小数位数。有关格式化字符串的更多信息,请参阅格式设置概述。
冒号前的值(常规示例中为 A)指定在从零开始的参数列表中的参数索引。注意 此值只能设置为 0,因为每个单元格中只有一个值。
冒号后的字符(一般示例中为 B)指定值的显示格式。下表列出了一些常用格式。格式字符 说明
C 以货币格式显示数值。
D 以十进制格式显示数值。
E 以科学记数法(指数)格式显示数值。
F 以固定格式显示数值。
G 以常规格式显示数值。
N 以数字格式显示数值。
X 以十六进制格式显示数值。 注意 除 X 以指定的大小写形式显示十六进制字符之外,其他格式字符不区分大小写。
格式字符后的值(一般示例中为 xx)指定显示的值的有效位数或小数位数。有关格式化字符串的更多信息,请参阅格式设置概述。
<%@ Import Namespace="System.Data" %>
<html>
<script language="C#" runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Load this data only once.
ItemsGrid.DataSource= CreateDataSource();
ItemsGrid.DataBind();
}
}
</script>
<body>
<form runat=server>
<h3>BoundColumn Example</h3>
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
runat="server"> <HeaderStyle BackColor="#00aaaa">
</HeaderStyle> <Columns> <asp:BoundColumn
HeaderText="Number"
DataField="IntegerValue">
</asp:BoundColumn> <asp:BoundColumn
HeaderText="Description"
DataField="StringValue">
</asp:BoundColumn> <asp:BoundColumn
HeaderText="Price"
DataField="CurrencyValue"
DataFormatString="{0:c}">
</asp:BoundColumn> </Columns>
</asp:DataGrid>
</form>
</body>
</html>
怎么酬谢啊,KISS?
{
public static void FormatGridStyle(DataGridView dgv, string [] field)
{ //传入要操作的DataGridView, 和要格式化的字段数组。
foreach (DataGridViewColumn dc in dgv.Columns)
{
if (IndexOfStrArr(dc.Name, field))
{
dc.DefaultCellStyle.Format = "N2"; //格式化成两位。
dc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; //右对齐
}
}
} public static void SetGridColumnVisible(DataGridView dgv, string[] field, bool AVisible) //设置栏位是否可视。
{
foreach (DataGridViewColumn dc in dgv.Columns)
{
if (IndexOfStrArr(dc.Name, field))
{
dc.Visible = AVisible;
}
}
} public static void SetGridColumnReadonly(DataGridView dgv, string[] field, bool AReadOnly) //设置栏位是否只读。
{
foreach (DataGridViewColumn dc in dgv.Columns)
{
if (IndexOfStrArr(dc.Name, field))
{
dc.ReadOnly = AReadOnly;
}
}
} public static bool IndexOfStrArr(string Astr, string[] StrArr)
{
bool rtBool = false;
for (int i = 0; i < StrArr.Length; i++)
{
if (StrArr[i].CompareTo(Astr) == 0)
{
rtBool = true;
break;
}
}
return rtBool;
}
}
也可以tostring(里面的格式字符串)来实现.不懂的查下msdn
.ToString("#0.00")就可以实现了吗。。
DataGridViewCellStyle.Format 属性
设置方法参照3楼
一个Format属性···
<%# System.Math.Round(decimal.Parse(Eval("AveragePrice").ToString()), 2)%>OK。就这样吧,应该可以满足你的要求了。。别忘记结贴给分!
后面加个ToString("f0")即可
DataGridView.Columns["AveragePrice"].DefaultCellStyle.Format = "N2";