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.SqlClient
da 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:
- Abra o Visual Studio .NET.
- No menu Arquivo, aponte para Novo e, em seguida, selecione Projeto.
- Na caixa de diálogo Novo Projeto , selecione Projetos do Visual C# em Tipos de Projeto e selecione ASP.NET Aplicativo Web em Modelos.
- 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 exibahttp://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.
Para adicionar um Formulário Web ao projeto, siga estas etapas:
- 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.
- Nomeie a página .aspx DropDown.aspx e selecione Abrir.
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.
Adicione um controle Label à página após o controle DropDownList. No painel Propriedades , altere a ID do controle para CurrentItem.
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.
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.
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;
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 deidentity
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.
Modifique o cadeia de conexão conforme apropriado para seu ambiente.
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); }
No menu Arquivo , selecione Salvar Tudo para salvar o Formulário Web e outros arquivos de projeto associados.
No menu Compilar no Ambiente de Desenvolvimento Integrado (IDE) do Visual Studio .NET, selecione Compilar para criar o projeto.
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.
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 verificaIsPostBack
para manter o item selecionado na posição atual da lista entre viagens de ida e volta para o servidor.
Referências
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários