none
Probleme caracteres HTML - gridview RRS feed

  • Question

  • Bonjour, après des recherches infructueuses sur la toile j'espère que vous allez pouvoir m'aider:

     

    j'ai une page web sur laquelle j'ai mis un GridView, qui est alimente par un SqlDataSource, a l'affichage tout est normal, je peux voir notamment cette donnée: "Bois broyé non traité >20"

     

    Voici maintenant mon soucis

     

     

    Dim rowArray = GridView1.Rows
    Dim s As String = rowArray(i).Cells(0).Text

     

    En faisant ca j'obtiens des é a la place des é et des > a la place des >, etc... ce qui ne m'arrange guerre.

    Pouvez-vous me dire d'où viens cette conversion?

     

     

     


    edit:

     

    Confus. J'ai cherche toute la journée d'hier pour ne rien trouver et il suffit que je poste sur MSDN pour trouver la solution 5 minutes apres, comme cela pourra interesser d'autres personnes je propose la solution :

     

     

     Protected Sub gv_drb(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowDataBound
     For Each cell As TableCell In e.Row.Cells
      cell.Text = Server.HtmlDecode(cell.Text)
     Next
     End Sub
    

     

     

    il se trouve que l'inverse (HtmlEncode) est automatiquement fait lors de la génération des cellules...

     

    edit2:

     

    Il se trouve que mon gridview perd ses propriétés de sélection, de tri et de pagination après la manipulation dans le RowDataBound, comment expliquer et remédier a cela?

     

    Pj.



    jeudi 28 avril 2011 06:57

Réponses

  • Bonjour,

    vous ne devriez pas effectuer l'opération HtmlDecode dans le rowdatabound. En effets certains caractères comme ">" ou "<" doivent être encodé sinon le navigateur va les interpréter comme une balise ouvrante d'un tag Html. Dans votre cas vous annulez l'opération d'encodage Html qui a été effectuer pour vous. Ceci pourrait expliquer votre perte des fonctions de tri, sélection.

    Utilisez HtmlDecode si besoin lroque que vous souhaitez accéder à la chaine non encodée, mais vous devez conserver les chaines encodées pour l'affichage

    Cordialement

     

    • Marqué comme réponse pjaaar jeudi 28 avril 2011 09:19
    jeudi 28 avril 2011 08:26
    Modérateur

Toutes les réponses

  • Bonjour,

    vous ne devriez pas effectuer l'opération HtmlDecode dans le rowdatabound. En effets certains caractères comme ">" ou "<" doivent être encodé sinon le navigateur va les interpréter comme une balise ouvrante d'un tag Html. Dans votre cas vous annulez l'opération d'encodage Html qui a été effectuer pour vous. Ceci pourrait expliquer votre perte des fonctions de tri, sélection.

    Utilisez HtmlDecode si besoin lroque que vous souhaitez accéder à la chaine non encodée, mais vous devez conserver les chaines encodées pour l'affichage

    Cordialement

     

    • Marqué comme réponse pjaaar jeudi 28 avril 2011 09:19
    jeudi 28 avril 2011 08:26
    Modérateur
  • Oui, j'ai fini par le remarquer, ce qui confirme qu'il faut faire avec.

     

    Si possible, ne pas appeler HtmlDecode dans le RowDataBound, mais le faire lorsqu'on doit avoir accès aux cellules...

     

    Pj.

    jeudi 28 avril 2011 09:19