Usuário com melhor resposta
DropdownList trazendo registro que foi salvo no banco

Pergunta
-
Olá Pessoal !!
Estou no VS 2008 framework 3.5 com C#, tenho dois Dropdownlists (UF e cidade), estou conseguindo salvá-los normalmente, o problema está sendo quando resgato o registro do banco para colocar o estado e a cidade na posição selecionada no dropdownlist,
estou pecando em alguma propriedade que o DDL tem mas não consigo usar....
Obs. gravo no banco o Id da cidade, onde já estava vinculado o id do estado pertencente...
desde já agradeço.
Respostas
-
Olá !!
Consegui.............
depois da colaboração de vocês consegui fazer a coisa certa para resolver meu problemas, tudo com uma linha de comando:
ddlEstado.Items.FindByValue(
Valeu gente...
Até mais !!!
Todas as Respostas
-
Bom,
você jah deve ter a sua query pronta
jah deve saber os valores que você vai colocar
então,
eu faço da seguinte maneira
preencho o text, e o value do dropdown
ex:
ddlEstado.Text = p.getTxFilial().ToString();
ddlEstado.Value = p.getCodEstado().ToString();ddlCidade.Text = p.getTxCidade().ToString();
ddlCidade.Value = p.getCodCidade().ToString();
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it. -
Olá,
você pode usar a propriedade SelectedValue do asp:DropDownList.
Ex:
string idCidade = String.Empty; //recupera o Id da Cidade
DropDownList1.SelectedValue = idCidade;
Se houver valor correspondente, o item será selecionado. Se não, nada ocorrerá.
Então, torna-se um boa prática, sempre testar se o valor que deverá ser atribuído no SelectedValue corresponde a algum item no DropDownList.
Isto pode ser feito da seguinte forma:
if(!DropDownList1.Items.Contains(listItem))
{
//faz algo fora do fluxo básico
//o método Contais recebe um ListItem.
}
ou
if(DropDownList1.Items.FindByValue("valor a ser procurado") == null)
{
//faz algo fora do fluxo básico
//o método FindByValue recebe uma string.
}
Vale lembrar que para isto funcionar corretamente, é bom atentar para quais campos da fonte de dados ligada ao DataSource do DropDownList, está setada para os propriedades Text e Value do DropDownList.
DropDownList1.DataTextField = "Coluna X"
DropDownList1.DataValueField = "Coluna Y"
Um abraço,
"Muito mais crucial do que aquilo que sabemos ou deixamos de saber é aquilo que não queremos saber." (Eric Hoffer) -
Olá Pessoal !!
Li cuidadosamente as dicas de vocês, e tentei implementar...mas continuo com os problemas, vocês conseguiram entender o que eu escrevi ?, Gostaria de quando clicar em determinado registro do cliente trazer como default no dropdown a sua Cidade, que já está salva na tabela do cliente pelo ID. e que daí consigo carregar e trazer dados através da BLL.
O mais próximo que consegui chegar foi quando fiz o seguinte trecho:
ddlCidade.SelectedItem.Text = cidade.NomeDaCidade;
ddlEstado.SelectedItem.Text = estado.SiglaEstado;
ddlCidade.SelectedItem.Value = Convert.ToString(cidade.Id);
ddlEstado.SelectedItem.Value = Convert.ToString(estado.Id);
POrém a opção aparece na index 0 do dropdown, e ainda repete a mesma cidade por exemplo nele, ou seja, é como se tivesse adcionado um novo item...
desde já agradeço....
continuarei tentando !!! -
Ola,
você deve proceder da seguinte maneira
if (!IsPostBack) { int i; // Perfil string[,] perfis = Patrimonio.buscarPerfil(); ListItem itemPerfil = new ListItem(); itemPerfil.Value = "0"; itemPerfil.Text = "-"; ddlPerfil.Items.Add(itemPerfil); for (i = 0; i < perfis.GetLength(0); i++) { ListItem itens = new ListItem(); itens.Value = perfis[i, 0].Trim(); itens.Text = perfis[i, 1].Trim(); ddlPerfil.Items.Add(itens); } }
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it. -
Olá !!
Então Leonardo...
Desculpe a insistência, ah...esqueci de falar tbm que ainda não sou um expert em C#...
mas então minha aplicação já tem as tabelas de cidade e estado. na´página eu faço:
ObterCidades(){....
ddlCidade.DataSource = cidadeBLL.ObterCidades(
Convert.ToInt32(ddlEstado.SelectedItem.Value));
ddlCidade.DataTextField =
"NomeDaCidade";
ddlCidade.DataValueField =
"Id";
ddlCidade.DataBind();
...}
e o mesmo para estado...
eu chamo esse metodo quando chamo um cliente e ele deixa disponivel o dropdown para realizar a mudança, caso o usuario queira mudar a cidade e o estado.
onde tem problemas é que na hora de trazer a cidade para ficar exibida no dropdown,
eu carrego o drop com esse método e depois procuro a cidade pelo selectedItem.Value e/ou selectedItem.Text...
dái os problemas...
será que estou fazendo certo os procedimentos...???
A proposta que me apresentou não resolve meu 'problem', pois não preciso adicionar itens ao DDL...
de qualquer maneira...obrigado
Até !!! -
Olá !!
Consegui.............
depois da colaboração de vocês consegui fazer a coisa certa para resolver meu problemas, tudo com uma linha de comando:
ddlEstado.Items.FindByValue(
Valeu gente...
Até mais !!!