2009-03-30 10 views
3

Je suis assez nouveau à asp.net et de venir dans un problème tout en utilisant un gridview.Comment arrêter la colonne gridview de coder automatiquement les entités html

J'ai ajouté quelques entrées qui contiennent le symbole "&" par exemple "PR Murphy & Associates". Je n'ai pas encodé mes données avant de les insérer dans la base de données.

Lorsque le gridview est modifié pour modifier le mode mon texte ressemble à ceci: « PR Murphy & Associés »

toi est une façon ny je peux l'empêcher de codage de l'information, je veux dire garder tout le texte " PR Murphy & Associés "lors de l'insertion, puis après/pendant un montage.

vous Remerciant

+0

Je suis tout à fait convaincu que le contrôle GridView fait la bonne chose. Peut-être que vos attentes sont fausses? Dans quelle situation l'encodage des entités HTML serait-il indésirable? – Tomalak

+0

@Tomalak: Je suis enclin à être d'accord avec vous. La seule fois où je dois désactiver HTMLEncoding est lorsque j'essaie de faire du formatage de chaîne sur des colonnes contenant des informations telles que des devises. – TheTXI

Répondre

5

Dans le menu du GridView, vous pouvez sélectionner la colonne et sous les propriétés de cette colonne que vous pouvez définir HTMLEncode False (ou Vrai en fonction de vos besoins).

+0

Le champ n'est pas un champ lié cependant. Il s'agit d'un dans un champ de modèle. – Jason

0

Je résolu ce problème avec GridView1_RowDataBound événement

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
      for (int i = 0; i < e.Row.Cells.Count; i++) 
      { 
       string encoded = e.Row.Cells[i].Text; 
       e.Row.Cells[i].Text = Context.Server.HtmlDecode(encoded); 
      } 
    } 
}