Caractères spéciaux dans 1 liste déroulante

Le
Matthieu
[ Avec Visual Studio .NET 2003 sous Framework .NET 1.1 ]


Bonjour,

Je dispose d'une liste déroulante générée à partir de données se trouvant
dans une table SQL Server 2000.

Voici le code HTML
<asp:dropdownlist id="ListeEtablissements" runat="server"
DataValueField="Id_Etablissement"
DataTextField="Nom_Etablissement"></asp:dropdownlist>

Voici le code-behind visual Studio 2003

Code:

Function GetDropDownList_Etablissements()
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim myReader As SqlDataReader
Dim SQL As String
Dim ConnStr As String

SQL = MaChaine
ConnStr = ConfigurationSettings.AppSettings("Dsn")
myConnection = New SqlConnection(ConnStr)
myConnection.Open()
myCommand = New SqlCommand(SQL, myConnection)
myReader = myCommand.ExecuteReader()
ListeEtablissements.DataSource = myReader
ListeEtablissements.DataBind()
'ajout d'une ligne blanche
ListeEtablissements.Items.Insert(0, "Tous les établissements")
ListeEtablissements.Items(0).Value = 0
ListeEtablissements.SelectedIndex =
ListeEtablissements.Items.IndexOf(ListeEtablissements.Items.FindByValue(NumEtab))
End Function



Problème:
Il arrive que la liste contienne les valeurs suivantes écrites "en dur" dans
la base : Val d& #39;Essonne ou Côte d & #39;Opale (sans les espaces).
Sûrement mis ici pour éviter de couper la chaine SQL lors de la génération
dynamique. Je ne peux malheureusement pas changer ces valeurs.

Question:
J'aimerais arriver à afficher la liste correctement pour obtenir Val
d'Essonne ou Côte d'Opale.
En donnant, j'imagine, un type d'encodage au controle. Mais comment faire ?

Je vous remercie par avance pour tous vos conseils éclairés.

Matthieu
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred
Le #12058141
Bonjour,
Je ne vois pas de solution 'simple'. Il faudrait que les éléments de la
liste interprètent le html ou xml pour faire cela.
Je ne crois pas que cela existe. La solution serait peut être de reprendre
tous les contenus pour les transformer.
Pourquoi pas avec les expressions régulières.
Est-il vraiment impossible de changer le contenu de la base ? Si on ne peut
plus mettre une apostrophe dans un champ texte alors où va-t-on ? ;-)

"Matthieu" news:
[ Avec Visual Studio .NET 2003 sous Framework .NET 1.1 ]


Bonjour,

Je dispose d'une liste déroulante générée à partir de données se trouvant
dans une table SQL Server 2000.

Voici le code HTML
<asp:dropdownlist id="ListeEtablissements" runat="server"
DataValueField="Id_Etablissement"
DataTextField="Nom_Etablissement"></asp:dropdownlist>

Voici le code-behind visual Studio 2003

Code:

Function GetDropDownList_Etablissements()
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim myReader As SqlDataReader
Dim SQL As String
Dim ConnStr As String

SQL = MaChaine
ConnStr = ConfigurationSettings.AppSettings("Dsn")
myConnection = New SqlConnection(ConnStr)
myConnection.Open()
myCommand = New SqlCommand(SQL, myConnection)
myReader = myCommand.ExecuteReader()
ListeEtablissements.DataSource = myReader
ListeEtablissements.DataBind()
'ajout d'une ligne blanche
ListeEtablissements.Items.Insert(0, "Tous les


établissements")
ListeEtablissements.Items(0).Value = 0
ListeEtablissements.SelectedIndex >


ListeEtablissements.Items.IndexOf(ListeEtablissements.Items.FindByValue(NumE
tab))
End Function



Problème:
Il arrive que la liste contienne les valeurs suivantes écrites "en dur"


dans
la base : Val d& #39;Essonne ou Côte d & #39;Opale (sans les espaces).
Sûrement mis ici pour éviter de couper la chaine SQL lors de la génération
dynamique. Je ne peux malheureusement pas changer ces valeurs.

Question:
J'aimerais arriver à afficher la liste correctement pour obtenir Val
d'Essonne ou Côte d'Opale.
En donnant, j'imagine, un type d'encodage au controle. Mais comment faire


?

Je vous remercie par avance pour tous vos conseils éclairés.

Matthieu




Matthieu
Le #12058121
Bonjour

Merci de ta réponse.
Non, malheureusement, impossible de changer la valeur. Cette table est
appelée par plusieurs applis et il est possible qu'il y ait une erreur
quelque part si on la modifie. Le pire, c'est que cette table n'est pas
forcément appellée quotidiennement. Donc, si plantage il y a, il peut
arriver demain, aujourd'hui ou la semaine prochaine...

Hic.


"Fred"
Bonjour,
Je ne vois pas de solution 'simple'. Il faudrait que les éléments de la
liste interprètent le html ou xml pour faire cela.
Je ne crois pas que cela existe. La solution serait peut être de reprendre
tous les contenus pour les transformer.
Pourquoi pas avec les expressions régulières.
Est-il vraiment impossible de changer le contenu de la base ? Si on ne
peut
plus mettre une apostrophe dans un champ texte alors où va-t-on ? ;-)

"Matthieu" news:
[ Avec Visual Studio .NET 2003 sous Framework .NET 1.1 ]


Bonjour,

Je dispose d'une liste déroulante générée à partir de données se trouvant
dans une table SQL Server 2000.

Voici le code HTML
<asp:dropdownlist id="ListeEtablissements" runat="server"
DataValueField="Id_Etablissement"
DataTextField="Nom_Etablissement"></asp:dropdownlist>

Voici le code-behind visual Studio 2003

Code:

Function GetDropDownList_Etablissements()
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim myReader As SqlDataReader
Dim SQL As String
Dim ConnStr As String

SQL = MaChaine
ConnStr = ConfigurationSettings.AppSettings("Dsn")
myConnection = New SqlConnection(ConnStr)
myConnection.Open()
myCommand = New SqlCommand(SQL, myConnection)
myReader = myCommand.ExecuteReader()
ListeEtablissements.DataSource = myReader
ListeEtablissements.DataBind()
'ajout d'une ligne blanche
ListeEtablissements.Items.Insert(0, "Tous les


établissements")
ListeEtablissements.Items(0).Value = 0
ListeEtablissements.SelectedIndex >>


ListeEtablissements.Items.IndexOf(ListeEtablissements.Items.FindByValue(NumE
tab))
End Function



Problème:
Il arrive que la liste contienne les valeurs suivantes écrites "en dur"


dans
la base : Val d& #39;Essonne ou Côte d & #39;Opale (sans les espaces).
Sûrement mis ici pour éviter de couper la chaine SQL lors de la
génération
dynamique. Je ne peux malheureusement pas changer ces valeurs.

Question:
J'aimerais arriver à afficher la liste correctement pour obtenir Val
d'Essonne ou Côte d'Opale.
En donnant, j'imagine, un type d'encodage au controle. Mais comment faire


?

Je vous remercie par avance pour tous vos conseils éclairés.

Matthieu








Cédric Dardenne
Le #12058111
Salut,

Un moyen serait de stocker ton résultat dans un dataset, et ensuite boucler
pour transformer ton champ texte en utilisant un HttpUtility.HtmlDecode()...

Cédric

--
Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
-- Rich Cook


Matthieu wrote:
[ Avec Visual Studio .NET 2003 sous Framework .NET 1.1 ]


Bonjour,

Je dispose d'une liste déroulante générée à partir de données se trouvant
dans une table SQL Server 2000.

Voici le code HTML
<asp:dropdownlist id="ListeEtablissements" runat="server"
DataValueField="Id_Etablissement"
DataTextField="Nom_Etablissement"></asp:dropdownlist>

Voici le code-behind visual Studio 2003

Code:

Function GetDropDownList_Etablissements()
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim myReader As SqlDataReader
Dim SQL As String
Dim ConnStr As String

SQL = MaChaine
ConnStr = ConfigurationSettings.AppSettings("Dsn")
myConnection = New SqlConnection(ConnStr)
myConnection.Open()
myCommand = New SqlCommand(SQL, myConnection)
myReader = myCommand.ExecuteReader()
ListeEtablissements.DataSource = myReader
ListeEtablissements.DataBind()
'ajout d'une ligne blanche
ListeEtablissements.Items.Insert(0, "Tous les
établissements") ListeEtablissements.Items(0).Value = 0
ListeEtablissements.SelectedIndex >


ListeEtablissements.Items.IndexOf(ListeEtablissements.Items.FindByValue(NumE
tab))
End Function



Problème:
Il arrive que la liste contienne les valeurs suivantes écrites "en dur"
dans la base : Val d& #39;Essonne ou Côte d & #39;Opale (sans les
espaces). Sûrement mis ici pour éviter de couper la chaine SQL lors de la
génération dynamique. Je ne peux malheureusement pas changer ces valeurs.

Question:
J'aimerais arriver à afficher la liste correctement pour obtenir Val
d'Essonne ou Côte d'Opale.
En donnant, j'imagine, un type d'encodage au controle. Mais comment faire
?

Je vous remercie par avance pour tous vos conseils éclairés.

Matthieu


Publicité
Poster une réponse
Anonyme