Adicionar itens estáticos e resultados usando o Visual C# da associação de dados a um controle DropDownList

Este artigo demonstra como adicionar itens estáticos e itens vinculados a dados a um controle DropDownList. O exemplo neste artigo preenche um controle DropDownList com um item inicial.

Versão original do produto: Visual C#
Número de KB original: 312489

Requisitos

A lista a seguir descreve o hardware e o software recomendados que você precisa:

  • Microsoft Windows
  • .NET Framework
  • Visual Studio .NET
  • IIS (Serviços de Informações da Internet)
  • SQL Server

Este artigo refere-se ao namespace System.Data.SqlClientda Biblioteca de Classes .NET Framework a seguir .

Usar o Visual C# para criar um aplicativo Web ASP.NET

Para criar um novo aplicativo Web ASP.NET chamado DDLSample, siga estas etapas:

  1. Abra o Visual Studio .NET.
  2. No menu Arquivo, aponte para Novo e, em seguida, selecione Projeto.
  3. Na caixa de diálogo Novo Projeto , selecione Projetos do Visual C# em Tipos de Projeto e selecione ASP.NET Aplicativo Web em Modelos.
  4. Na caixa Localização , substitua WebApplication1 na URL padrão por DDLSample. Se você estiver usando o servidor local, poderá deixar o nome do servidor como http://localhost para que a caixa Localização exiba http://localhost/DDLSample.

Criar o exemplo

Nas etapas a seguir, você cria uma página .aspx que contém um controle DropDownList. O controle DropDownList está associado a colunas da Authors tabela do banco de dados SQL Server Pubs.

  1. Para adicionar um Formulário Web ao projeto, siga estas etapas:

    1. Clique com o botão direito do mouse no nó do projeto em Gerenciador de Soluções, selecione Adicionar e, em seguida, selecione Adicionar Formulário Web.
    2. Nomeie a página .aspx DropDown.aspx e selecione Abrir.
  2. Verifique se a página está aberta na exibição Design no editor. Adicione um controle DropDownList à página. No painel Propriedades , altere a ID do controle para AuthorList.

  3. Adicione um controle Label à página após o controle DropDownList. No painel Propriedades , altere a ID do controle para CurrentItem.

  4. Adicione um controle Button à página após o controle Rótulo. No painel Propriedades , altere a ID do controle para GetItem e altere a propriedade Text para Get Item.

  5. Clique com o botão direito do mouse na página e selecione Exibir Código. Isso abre o arquivo de classe code-behind no editor.

  6. Adicione o System.Data.SqlClient namespace ao arquivo de classe code-behind para que o código de exemplo funcione corretamente. A lista completa de namespaces deve ser exibida da seguinte maneira.

    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. Adicione o código a seguir ao Page_Load evento.

    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 -->");
        }
    }
    

    Para usar a Segurança Integrada na cadeia de conexão, altere o arquivoWeb.config para o aplicativo e defina o impersonate atributo do elemento de identity configuração como true, conforme mostrado no exemplo a seguir.

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

    Para obter mais informações, consulte ASP.NET Representação.

  8. Modifique o cadeia de conexão conforme apropriado para seu ambiente.

  9. Alterne para a exibição Design no editor da página .aspx. Clique duas vezes em GetItem. Adicione o código a seguir ao GetItem_Click evento no arquivo 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. No menu Arquivo , selecione Salvar Tudo para salvar o Formulário Web e outros arquivos de projeto associados.

  11. No menu Compilar no Ambiente de Desenvolvimento Integrado (IDE) do Visual Studio .NET, selecione Compilar para criar o projeto.

  12. Em Gerenciador de Soluções, clique com o botão direito do mouse na página .aspx e selecione Exibir No Navegador. Observe que a página é aberta no navegador e que a caixa de lista suspensa é preenchida com os dados iniciais.

  13. Selecione um item na caixa de lista suspensa. Observe que o controle Rótulo CurrentItem exibe o item selecionado. Além disso, observe que a lista mantém a posição atual e a entrada estática.

Solução de problemas

  • Você deve colocar o código para adicionar o item estático à ListItem coleção do controle após o código de associação de dados. Se você não adicionar o código nesta ordem, a lista será recriada com o código de associação de dados, que substitui a entrada estática.
  • O código de exemplo verifica a IsPostBack propriedade para impedir que a lista seja recriada. Além disso, esse código verifica IsPostBack para manter o item selecionado na posição atual da lista entre viagens de ida e volta para o servidor.

Referências