Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Désactiver l'encodage HTML du contenu des controles... ?_?

3 réponses
Avatar
Ryo
Re !

2eme question pour moi aujourd'hui mais je suis tombé sur un truc qui me
laisse perplexe...
Je stocke mes données dans une base Oracle, et Oracle (comme d'autre SGBD)
ça aime pas les apostrophes " ' ". Donc avant de mettres des données dans la
base je remplace les apostrophe par des ' (leur equivalent HTML donc).
Là ou ça deviens marrant c'est quand je récupères des données pour les
mettres dans un WebControl, prennons comme exemple une simple avec une
TextBox (txt) dont on donne la valeur au chargement de la page:
txt.Text = "L'autre essai...";
A l'affichage on devrait avoir:
L'autre essai...
Et bien non on a:
L'autre essai...
En regardant le code source de la page on voit:
<input name="ctl00$cphCorpCentre$txt" type="text" value="L&#39;autre
essai..." id="ctl00_cphCorpCentre_txt" />
Donc le caractère & a été remplacé par son équivalent HTML et du coup le
résultat n'est plus celui attendu.
Je pourrais trés bien remplacer les &#39 par des ' avant de mettre la chaine
dans mon controle mais il y a des moments ou ça devient pénible, comme par
exmple pour une liste de données issue de la base et source d'une dropdown...
Donc je me demandais s'il n'était pas possible de désactiver cet encodage
HTML automatique du contenu d'un controle ?
Merci.

3 réponses

Avatar
Patrice
Je suis pas sûr de bien comprendre (tu postes en HTML ?, j'ai du mal à voir
la différence entre les caractères dont tu parles dans ton message).

De toute façon, je pense que la meilleure solution serait de doubler les
apostrophes (ou mieux utiliser des paramètres) pour mettre à jour les
données.

Le problème est que ' est le délimiteur des libellés. Si tu veux un ' dans
un libellé il faut le doubler :

UPDATE MaTable SET Nom='O''Connor' WHERE pk ce qui enregistre O'Connor
dans la base...

Tu peux avoir des problèmes similaires avec le point décimal et le format
des dates que l'utilisation de paramètres permet d'éviter...

--
Patrice

"Ryo" a écrit dans le message de
news:
Re !

2eme question pour moi aujourd'hui mais je suis tombé sur un truc qui me
laisse perplexe...
Je stocke mes données dans une base Oracle, et Oracle (comme d'autre SGBD)
ça aime pas les apostrophes " ' ". Donc avant de mettres des données dans


la
base je remplace les apostrophe par des ' (leur equivalent HTML donc).
Là ou ça deviens marrant c'est quand je récupères des données pour les
mettres dans un WebControl, prennons comme exemple une simple avec une
TextBox (txt) dont on donne la valeur au chargement de la page:
txt.Text = "L'autre essai...";
A l'affichage on devrait avoir:
L'autre essai...
Et bien non on a:
L'autre essai...
En regardant le code source de la page on voit:
<input name="ctl00$cphCorpCentre$txt" type="text" value="L&#39;autre
essai..." id="ctl00_cphCorpCentre_txt" />
Donc le caractère & a été remplacé par son équivalent HTML et du coup le
résultat n'est plus celui attendu.
Je pourrais trés bien remplacer les &#39 par des ' avant de mettre la


chaine
dans mon controle mais il y a des moments ou ça devient pénible, comme par
exmple pour une liste de données issue de la base et source d'une


dropdown...
Donc je me demandais s'il n'était pas possible de désactiver cet encodage
HTML automatique du contenu d'un controle ?
Merci.


Avatar
Ryo
Merci ca marche nickel !
Et c'est vrai que j'y avais mais carement pas pensé alors que c'est tout bête.
Par contre comment tu fait ça avec des paramètres ?

"Patrice" a écrit :

Je suis pas sûr de bien comprendre (tu postes en HTML ?, j'ai du mal à voir
la différence entre les caractères dont tu parles dans ton message).

De toute façon, je pense que la meilleure solution serait de doubler les
apostrophes (ou mieux utiliser des paramètres) pour mettre à jour les
données.

Le problème est que ' est le délimiteur des libellés. Si tu veux un ' dans
un libellé il faut le doubler :

UPDATE MaTable SET Nom='O''Connor' WHERE pk ce qui enregistre O'Connor
dans la base...

Tu peux avoir des problèmes similaires avec le point décimal et le format
des dates que l'utilisation de paramètres permet d'éviter...

--
Patrice

"Ryo" a écrit dans le message de
news:
> Re !
>
> 2eme question pour moi aujourd'hui mais je suis tombé sur un truc qui me
> laisse perplexe...
> Je stocke mes données dans une base Oracle, et Oracle (comme d'autre SGBD)
> ça aime pas les apostrophes " ' ". Donc avant de mettres des données dans
la
> base je remplace les apostrophe par des ' (leur equivalent HTML donc).
> Là ou ça deviens marrant c'est quand je récupères des données pour les
> mettres dans un WebControl, prennons comme exemple une simple avec une
> TextBox (txt) dont on donne la valeur au chargement de la page:
> txt.Text = "L'autre essai...";
> A l'affichage on devrait avoir:
> L'autre essai...
> Et bien non on a:
> L'autre essai...
> En regardant le code source de la page on voit:
> <input name="ctl00$cphCorpCentre$txt" type="text" value="L'autre
> essai..." id="ctl00_cphCorpCentre_txt" />
> Donc le caractère & a été remplacé par son équivalent HTML et du coup le
> résultat n'est plus celui attendu.
> Je pourrais trés bien remplacer les &#39 par des ' avant de mettre la
chaine
> dans mon controle mais il y a des moments ou ça devient pénible, comme par
> exmple pour une liste de données issue de la base et source d'une
dropdown...
> Donc je me demandais s'il n'était pas possible de désactiver cet encodage
> HTML automatique du contenu d'un controle ?
> Merci.





Avatar
Patrice
Cela dépend aussi un peu de la base (OleDb, SqlClient ?)

Il y a un exemple dans la doc (en français) :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/fre/cpref/html/frlrfsystemdataoledboledbcommandclassparameterstopic.asp

--
Patrice

"Ryo" a écrit dans le message de
news:
Merci ca marche nickel !
Et c'est vrai que j'y avais mais carement pas pensé alors que c'est tout


bête.
Par contre comment tu fait ça avec des paramètres ?

"Patrice" a écrit :

> Je suis pas sûr de bien comprendre (tu postes en HTML ?, j'ai du mal à


voir
> la différence entre les caractères dont tu parles dans ton message).
>
> De toute façon, je pense que la meilleure solution serait de doubler les
> apostrophes (ou mieux utiliser des paramètres) pour mettre à jour les
> données.
>
> Le problème est que ' est le délimiteur des libellés. Si tu veux un '


dans
> un libellé il faut le doubler :
>
> UPDATE MaTable SET Nom='O''Connor' WHERE pk ce qui enregistre


O'Connor
> dans la base...
>
> Tu peux avoir des problèmes similaires avec le point décimal et le


format
> des dates que l'utilisation de paramètres permet d'éviter...
>
> --
> Patrice
>
> "Ryo" a écrit dans le message de
> news:
> > Re !
> >
> > 2eme question pour moi aujourd'hui mais je suis tombé sur un truc qui


me
> > laisse perplexe...
> > Je stocke mes données dans une base Oracle, et Oracle (comme d'autre


SGBD)
> > ça aime pas les apostrophes " ' ". Donc avant de mettres des données


dans
> la
> > base je remplace les apostrophe par des ' (leur equivalent HTML donc).
> > Là ou ça deviens marrant c'est quand je récupères des données pour les
> > mettres dans un WebControl, prennons comme exemple une simple avec une
> > TextBox (txt) dont on donne la valeur au chargement de la page:
> > txt.Text = "L'autre essai...";
> > A l'affichage on devrait avoir:
> > L'autre essai...
> > Et bien non on a:
> > L'autre essai...
> > En regardant le code source de la page on voit:
> > <input name="ctl00$cphCorpCentre$txt" type="text" value="L'autre
> > essai..." id="ctl00_cphCorpCentre_txt" />
> > Donc le caractère & a été remplacé par son équivalent HTML et du coup


le
> > résultat n'est plus celui attendu.
> > Je pourrais trés bien remplacer les &#39 par des ' avant de mettre la
> chaine
> > dans mon controle mais il y a des moments ou ça devient pénible, comme


par
> > exmple pour une liste de données issue de la base et source d'une
> dropdown...
> > Donc je me demandais s'il n'était pas possible de désactiver cet


encodage
> > HTML automatique du contenu d'un controle ?
> > Merci.
>
>
>