2013-04-09 35 views

回答

2

一种方法是使用DataFormatString属性。例如:

<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" 
    DataKeyNames="ProductID" DataSourceID="SqlDataSource1"> 
    <Columns> 
     <asp:BoundField DataField="ListPrice" 
      HeaderText="ListPrice" 
      SortExpression="ListPrice" 
      DataFormatString="{0:F1}" /> 
    </Columns> 
</asp:GridView> 

你也可以使用RowDataBound,你有更多的控制权:

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // assuming you are using BoundFields and 
     // the column which you want to format is the first 
     // if you are using TemplateFields use e.Row.FindControl("ControlID") to find your controls 
     var row = (DataRowView) e.Row.DataItem; 
     decimal price = (decimal)row["ListPrice"]; 
     e.Row.Cells[0].Text = price.ToString("F1"); 
    } 
} 

编辑:这里的VB.NET版本:

Protected Sub GridView1_RowDataBound(sender As [Object], e As GridViewRowEventArgs) Handles GridView1.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 
     ' assuming you are using BoundFields and             ' 
     ' the column which you want to format is the first           ' 
     ' if you are using TemplateFields use e.Row.FindControl("ControlID") to find your controls ' 
     Dim row = DirectCast(e.Row.DataItem, DataRowView) 
     Dim price As Decimal = CDec(row("ListPrice")) 
     e.Row.Cells(0).Text = price.ToString("F1") 
    End If 
End Sub 
1

你只需要使用BoundField.DataFormatString属性,为了解决您的问题并获得适当的知识,请检查此Microsoft Link

希望它适合你。

相关问题