2009-11-24 11 views
4

J'ai un champ lié dans mon Gridview qui obtient sa valeur d'une table de base de données.valeur décimale de format dans gridview

J'ai les données mais je ne sais pas comment les formater dans le gridview.

Par exemple j'obtenir des données totales en bas comme « 123456 », mais je veux afficher comme « 123456 »

<asp:BoundField DataField="totaldata" HeaderText="Total Data" 
     ReadOnly="True" SortExpression="totaldata" /> 

Comment puis-je faire cela? Dois-je convertir le champ lié en champ de modèle? Mais qu'est-ce que je fais après ça.

aidez s'il vous plaît.

J'ai utilisé DataFormatString = "{0: n0}" et il a résolu le problème ci-dessus.

comment puis-je faire pour cela:

<asp:TemplateField HeaderText="Failed Files" 
      SortExpression="NumFailed"> 
      <ItemTemplate> 
      <asp:Image ID="Image2" runat="server" ImageUrl="~/NewFolder1/warning_16x16.gif" /> 
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles") %>'></asp:HyperLink> 
      </ItemTemplate> 
     </asp:TemplateField> 

l'hyperlien a le numéro qui doivent être formatés ...

Répondre

8

Utilisez la propriété DataFormat:

<asp:BoundField DataField="totaldata" HeaderText="Total Data" 
    ReadOnly="True" SortExpression="totaldata" DataFormatString="{0:n3}" /> 

EDIT: Pour la deuxième partie de votre question utilise deuxième paramètre pour formater vos données de la méthode Eval:

<%# Eval("NumFailedFiles", "{0:n3}") %> 

Ensuite, votre modèle sera comme ça:

<asp:TemplateField HeaderText="Failed Files" 
    SortExpression="NumFailed"> 
    <ItemTemplate> 
    <asp:Image ID="Image2" runat="server" 
     ImageUrl="~/NewFolder1/warning_16x16.gif" /> 
     <asp:HyperLink ID="HyperLink1" runat="server" 
       NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' 
       Text='<%# Eval("NumFailedFiles", "{0:n3}") %>'></asp:HyperLink> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

c'est correct mais je viens de modifier un peu DataFormatString = "{0: n0}" juste pour enlever le point décimal .... mais j'ai un problème s'il vous plaît aider je l'ai ajouté à ma question – user175084

+0

s'il vous plaît aider avec le ab Ove – user175084

2

Quelques façons comment vous pouvez le faire

Option 1

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles","{0:n0}") %>'></asp:HyperLink> 

Option 2

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx? id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles").ToString("N") %>'></asp:HyperLink> 

Option 3
créer une méthode dans le code derrière la page qui renvoie le nombre formaté.

protected string GetFormatedNumber(object number) 
{ 
    if (number != null) 
     { 
      return number.ToString("N"); 
     } 
     return "0"; 
} 

Et appelez la méthode dans votre page ASPX comme ci-dessous:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx? id="+Eval("MachineID") %>' Text='<%#GetFormatedNumber(Eval("NumFailedFiles")) %>'></asp:HyperLink> 
0

si vous voulez formater vos données sur l'utilisation gridview "{0: n3}"

<asp:Label ID="label" runat="server" Visible="true" Text='<%#DataBinder.Eval(Container.DataItem, "data","{0:n3}") %>'></asp:Label> 
Questions connexes