2013-04-09 3 views
1

Как применить десятичное форматирование к определенному столбцу в Gridview?VB.NET Как применить десятичное форматирование к определенному столбцу в Gridview?

например, 83.7837837837838 заполняется из SQL, как его преобразовать в 83.8.

Я только хочу применить это к одному столбцу, так как другие столбцы являются целыми числами, поэтому это не требуется.

ответ

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"); 
    } 
} 

Edit: здесь версии 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

Надеюсь, это сработает для вас.

Смежные вопросы