Ajouter des éléments et des résultats statiques à l’aide de Visual C# à partir de la liaison de données à un contrôle DropDownList

Cet article explique comment ajouter des éléments statiques et des éléments liés aux données à un contrôle DropDownList. L’exemple de cet article remplit un contrôle DropDownList avec un élément initial.

Version du produit d’origine :   Visual C #
Numéro de la base de connaissances initiale :   312489

Configuration requise

La liste suivante décrit le matériel et les logiciels recommandés dont vous avez besoin :

  • Microsoft Windows
  • .NET Framework
  • Visual Studio .NET
  • Internet Information Services (IIS)
  • SQL Server

Cet article fait référence à l’espace de noms de la bibliothèque de classes .NET Framework suivant System.Data.SqlClient .

Utiliser Visual C# pour créer une application Web ASP.NET

Pour créer une nouvelle application Web ASP.NET nommée DDLSample, procédez comme suit :

  1. Ouvrez Visual Studio .NET.
  2. Dans le menu fichier , pointez sur nouveau, puis sélectionnez projet.
  3. Dans la boîte de dialogue nouveau projet , sélectionnez projets Visual C# sous types de projets, puis sélectionnez application Web ASP.net sous modèles.
  4. Dans la zone emplacement , remplacez WEBAPPLICATION1 dans l’URL par défaut par DDLSample. Si vous utilisez le serveur local, vous pouvez laisser le nom du serveur comme de façon à ce http://localhost que la zone emplacement s’affiche http://localhost/DDLSample .

Créer l’exemple

Dans les étapes suivantes, vous créez une page. aspx qui contient un contrôle DropDownList. Le contrôle DropDownList est lié aux colonnes de la Authors table à partir de la base de données pubs SQL Server.

  1. Pour ajouter un formulaire Web au projet, procédez comme suit :

    1. Cliquez avec le bouton droit sur le nœud du projet dans l’Explorateur de solutions, sélectionnez Ajouter, puis Ajouter un formulaire Web.
    2. Nommez la page. aspx DropDown. aspx, puis sélectionnez ouvrir.
  2. Assurez-vous que la page est ouverte en mode création dans l’éditeur. Ajoutez un contrôle DropDownList à la page. Dans le volet des Propriétés , modifiez l' ID du contrôle en AuthorList.

  3. Ajoutez un contrôle Label à la page après le contrôle DropDownList. Dans le volet des Propriétés , modifiez l' ID du contrôle en CurrentItem.

  4. Ajoutez un contrôle de bouton à la page après le contrôle d’étiquette. Dans le volet des Propriétés , modifiez l' ID du contrôle en GetItem, puis modifiez la propriété Text sur Get Item.

  5. Cliquez avec le bouton droit sur la page, puis sélectionnez afficher le code. Le fichier de classe code-behind s’ouvre dans l’éditeur.

  6. Ajoutez l' System.Data.SqlClient espace de noms au fichier de classe code-behind afin que l’exemple de code fonctionne correctement. La liste complète des espaces de noms doit apparaître comme suit.

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    
  7. Ajoutez le code suivant à l' Page_Load événement.

    private void Page_Load (object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection myConn = new SqlConnection (
                "Server=localhost;Database=Pubs;Integrated Security=SSPI");
            SqlCommand myCmd = new SqlCommand (
                "SELECT au_id, au_lname FROM Authors", myConn);
            myConn.Open ();
            SqlDataReader myReader = myCmd.ExecuteReader ();
    
            //Set up the data binding.
            AuthorList.DataSource = myReader;
            AuthorList.DataTextField = "au_lname";
            AuthorList.DataValueField = "au_id";
            AuthorList.DataBind ();
    
            //Close the connection.
            myConn.Close ();
            myReader.Close ();
    
            //Add the item at the first position.
            AuthorList.Items.Insert (0, "<-- Select -->");
        }
    }
    

    Pour utiliser la sécurité intégrée dans la chaîne de connexion, modifiez le fichier Web.config pour l’application et définissez l' impersonate attribut de l' identity élément configuration sur true, comme illustré dans l’exemple suivant.

    <configuration>
        <system.web>
            <identity impersonate="true" />
        </system.web>
    </configuration>
    

    Pour plus d’informations, consultez la rubrique emprunt d’identité ASP.net.

  8. Modifiez la chaîne de connexion en fonction de votre environnement.

  9. Basculez en mode création dans l’éditeur de la page. aspx. Double-cliquez sur GetItem. Ajoutez le code suivant à l' GetItem_Click événement dans le fichier de classe code-behind.

    private void GetItem_Click (object sender, System.EventArgs e)
    {
        string itemText = AuthorList.SelectedItem.Text;
        string itemValue = AuthorList.SelectedItem.Value;
        CurrentItem.Text = string.Format (
            "Selected Text is {0}, and Value is {1}", itemText, itemValue);
    }
    
  10. Dans le menu fichier , sélectionnez enregistrer tout pour enregistrer le formulaire Web et les autres fichiers de projet associés.

  11. Dans le menu générer de l’environnement de développement intégré (IDE) Visual Studio .net, sélectionnez générer pour générer le projet.

  12. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur la page. aspx, puis sélectionnez afficher dans le navigateur. Notez que la page s’ouvre dans le navigateur et que la zone de liste déroulante contient les données initiales.

  13. Sélectionnez un élément dans la zone de liste déroulante. Notez que le contrôle d’étiquette CurrentItem affiche l’élément que vous avez sélectionné. Notez également que la liste conserve la position actuelle et l’entrée statique.

Résolution des problèmes

  • Vous devez placer le code pour ajouter l’élément statique à la ListItem collection du contrôle après le code de liaison de données. Si vous n’ajoutez pas le code dans cet ordre, la liste est recréée avec le code de liaison de données, qui remplace l’entrée statique.
  • L’exemple de code vérifie la IsPostBack propriété afin d’empêcher la liste d’être recréée. De plus, ce code vérifie IsPostBack que l’élément sélectionné est conservé dans la position actuelle de la liste entre les allers-retours au serveur.

Références