Éclaircissement concernant le databind avec dropdownlist

Résolu
cs_tom741 Messages postés 8 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 3 janvier 2009 - 30 oct. 2008 à 15:21
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 2 nov. 2008 à 22:56
bonjour à tous,

j'utilise souvent des dropdownlist que je peuple avec des résultats qui viennent de ma base de données.

Ce que je voudrai savoir c'est de trouver la meilleur technique pour faire ceci :

je selectionne un élément dans la dropdownlist, je le modifie dans un textbox, je click sur un bouton et dans la dropdownlist la nouvelle valeur apparait directement.

ce que je fais :

- je peuple la dropdownlist
- lorsque je click sur le bouton, je fais dans le code behind ma requête, je fais "items.clear()" sur ma dropdownlist + un databind.

Si je ne fais pas de databind : la nouvelle valeur n'apparait pas / mais j'ai les résultat en double dans la dropdown list !
Je fais le items.clear() avant comme ca il n'y a pas de doublon

Mais j'ai l'impression que cette techinque est assez "barbare", n'y aurait-il pas un autre moyen plus propre de faire les choses ?

Merci d'avance.

3 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
2 nov. 2008 à 22:56
Bonsoir,

Avec un sqldatasource, donc, sur l'événément textchanged du textbox :

 protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        string sqlins = "INSERT Themes (Theme) VALUES ('" + TextBox1.Text + "')";
        SqlDataSource1.InsertCommand = sqlins;
        SqlDataSource1.Insert();
       
    }

En principe, ta dropdownlist devrait être mise à jour automatiquement.
Note toutefois que la requête, dans cet exemple, n'est pas une requête paramétrée, ce qui n'est pas formidable pour la sécurité. Il vaudra mieux modifier.

GGtry
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
31 oct. 2008 à 03:11
Bonsoir,

Tu peux essayer (en vb.) :

Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim sqlins As String
        sqlins = "INSERT Tatable (Tonchamp) VALUES ('" & TextBox1.Text & "')"
        SqlDataSource1.InsertCommand = sqlins
        SqlDataSource1.Insert()
    End Sub

GGtry
0
cs_tom741 Messages postés 8 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 3 janvier 2009
2 nov. 2008 à 18:30
Bonjour,
excuse moi je n'ai pas précisé ca aurait été mieux en C# ^^.
0
Rejoignez-nous