none
ID obtido por dropdownlist que já foi filtrado por outro dropdownlist RRS feed

  • Pergunta

  • Fala povo!!

    Sou iniciante e estou com uma dúvida.

     

    Tenho um combo de ESTADO. escolho um estado e a partir do id desse estado é carregado o combo de CIDADE com o id obtido no combo ESTADO.

     

    Quando vou inserir um dado no banco, não consigo obter o id da CIDADE. estava tentando com ddl.SelectedIndex, mas ele tras o id do indice do combo, nao o verdadeiro ID

     

    Como posso fazer para conseguir o ID referente à cidade que filtrei pelo combo Estado?

     

    Estou usando Visual Studio 2010 com ASP.NET e banco SQL server 2008

     

    Obrigado!

    • Movido AndreAlvesLima terça-feira, 16 de agosto de 2011 19:28 (De:.NET Development - Geral)
    terça-feira, 16 de agosto de 2011 01:48

Respostas

  • Popula sua combo assim:

     

     

       suacombo.DataSource = seudatasource.
       suacombo.DataValueField = "ID";
       suacombo.DataTextField = "NOME";
       suacombo.DataBind();
       suacombo.Items.Insert(0, new ListItem { Text = "Selecione...", Value = "" });
    

     


    o datavaluefield e o outro devem ser o nome das colunas que você retorna no datasource.

    depois.. para resgatar o ID:

     

     

     suacombo.SelectedItem.Text; //Busca o nome.
     suacombo.SelectedItem.Value; //Busca o ID.
    

     

    Espero que te ajude :)

     


    • Sugerido como Resposta MarceloSchneider quarta-feira, 17 de agosto de 2011 20:20
    • Marcado como Resposta Harley Araujo quinta-feira, 18 de agosto de 2011 12:45
    terça-feira, 16 de agosto de 2011 20:01

Todas as Respostas

  • Olá FullBend,

    Vc tentou a propriedade SelectedValue?

    Essa é a propriedade indicada...

    O SelectedText trás o texto e o SelectedValue trás o ID...

     

    Mas, para que isso funcione corretamente vc tem que ao popular seu combo (DropDownList no caso do ASP.Net), definir a propriedade DataValueField com o nome do campo que contém o ID, assim como vc definiu a propriedade DataTextField com o nome do campo que contém o texto...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 16 de agosto de 2011 02:06
  • Tente recuperar com o SelectedValue, caso você tenha colocado que o ID do estado na propriedade DataValueField do seu DropDownList.

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue.aspx 
    Vitor Mendes | Seu feedback é muito importante para todos!
    terça-feira, 16 de agosto de 2011 02:08
  • Olá Fullbend!

     

               Confirma se suas combos estão configuradas para fazer "AUTOPOSTBACK", isto é, com a propriedade Autopostback = True. Caso contrário, os valores podem retornar nulos. Estando tudo Ok, ddl.selectedvalue deve funcionar!

     

    Abs!

    terça-feira, 16 de agosto de 2011 14:12
  • Prezado(a),
    Estou migrando seu post para o fórum de ASP.NET.
    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
    Obrigado.

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de agosto de 2011 19:28
  • Popula sua combo assim:

     

     

       suacombo.DataSource = seudatasource.
       suacombo.DataValueField = "ID";
       suacombo.DataTextField = "NOME";
       suacombo.DataBind();
       suacombo.Items.Insert(0, new ListItem { Text = "Selecione...", Value = "" });
    

     


    o datavaluefield e o outro devem ser o nome das colunas que você retorna no datasource.

    depois.. para resgatar o ID:

     

     

     suacombo.SelectedItem.Text; //Busca o nome.
     suacombo.SelectedItem.Value; //Busca o ID.
    

     

    Espero que te ajude :)

     


    • Sugerido como Resposta MarceloSchneider quarta-feira, 17 de agosto de 2011 20:20
    • Marcado como Resposta Harley Araujo quinta-feira, 18 de agosto de 2011 12:45
    terça-feira, 16 de agosto de 2011 20:01