2010-09-02 2 views
2

J'ai les colonnes suivantes dans une grille, l'une est une date et l'autre est un montant en dollars. J'ai appliqué la mise en forme et définissez la propriété HtmlEncode false, mais les valeurs sont encore en place non formatée:La mise en forme appliquée aux boundfields dans gridview ne fonctionne pas

<asp:BoundField DataField="Total" HeaderText="Total" ReadOnly="true" HtmlEncode="False" DataFormatString="{0:C}" /> 
<asp:BoundField DataField="Sale_Date" HeaderText="Sale Date" ReadOnly="true" HtmlEncode="False" DataFormatString = "{0:d}" /> 

Voici comment ces valeurs apparaissent dans le gridview:

La valeur « totale » apparaît comme: 190,0000 La vente valeur date est comme: 9/2/2010 08:59:00

Toutes les suggestions?

Répondre

5

J'ai trouvé quel était le problème. Je n'ai pas pu formater les boundfields à partir de gridview car son type de données a été défini sur une chaîne. L'ensemble de données que j'utilise pour remplir la grille provient d'un service Web. Tous les champs de l'ensemble de données reviennent sous la forme de chaînes, ce qui explique pourquoi la propriété DataFormatString dans la grille n'a pas fonctionné.

Le correctif: Je fini par changer le type de données de ces champs après que je suis arrivé l'ensemble des données du service Web et avant de l'utiliser comme source de données de la vue de la grille, une fois que je l'ai fait, la propriété DataFormatString en le gridview a fonctionné comme prévu:

ds = _ws.GetOrderList(brokerId, type, pageSize, pageNum, sort, searchBy, searchFor); 
ds2 = ds.Clone(); 

ds2.Tables[0].Columns["Price"].DataType = System.Type.GetType("System.Double"); 
ds2.Tables[0].Columns["Total"].DataType = System.Type.GetType("System.Double"); 
ds2.Tables[0].Columns["Sale_Date"].DataType = System.Type.GetType("System.DateTime"); 

foreach (DataRow row in ds.Tables[0].Rows) 
    { 
    ds2.Tables[0].ImportRow(row); 
    } 
return ds2 
+2

Ce fixe pour moi, mais au lieu d'utiliser 'System.Type.GetType ("System.Double")' 'Je recommande d'utiliser typeof (double)' –

Questions connexes