none
dropdownlist não carrega os nomes dos estados RRS feed

  • Pergunta

  • quando o usuario clicar no gridview no commandField editar , carregar o dropdownlist em outra aspx com o nome do estado que esta salvo na Entidade.

    alguem poderia ajudar?

    GridView 

     <asp:GridView ID="grvFuncionarios" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="PK_Funcionario" 
            onselectedindexchanged="grvFuncionarios_SelectedIndexChanged" 
            Width="415px" BorderStyle="Solid" 
            onrowdeleting="grvFuncionarios_RowDeleting">
            <Columns>
                <asp:BoundField DataField="PK_Funcionario" HeaderText="Código" />
                <asp:BoundField DataField="Nome" HeaderText="Nome" />
                <asp:CommandField SelectText="[Editar]" ShowSelectButton="True" />
                <asp:CommandField DeleteText="[Deletar]" ShowDeleteButton="True"  />
            </Columns>
        </asp:GridView>

    aqui passo o id do estado pra sessao e vo para a outra aspx

     protected void grvFuncionarios_SelectedIndexChanged(object sender, EventArgs e)
            {
                int idFuncionario = (int)grvFuncionarios.SelectedValue;


                funcionario = funcionarioDao.Find(func => func.PK_Funcionario == idFuncionario).First<Funcionario>();



                HttpContext.Current.Session["cod"] = funcionario.PK_Funcionario.ToString();

                Response.Redirect("CadastroFuncionario.aspx");

            }

    aqui preencho os campos

                          

     public void PreencherCampos()
            {
                int codigo = int.Parse(Session["cod"].ToString());


                funcionario = funcionariosBll.Find(func => func.PK_Funcionario == codigo).First<Funcionario>();



                txtNome.Text = funcionario.Nome;
                txtEmail.Text = funcionario.Email;
                txtDataNascimento.Text = funcionario.DataNascimento.ToString();
                txtSalario.Text = funcionario.Salario.ToString();

               ddlEstado.SelectedValue = estado.Nome;


                Session["cod"] = null;
            }

    quarta-feira, 4 de setembro de 2013 06:07

Todas as Respostas

  • Na pagina cadastrar.aspx  o dropdownlist vem vazio
    quarta-feira, 4 de setembro de 2013 06:42
  • Vem vazio porque você não está preenchendo o DropDown. Faça um método para preencher o DropDown a preencha com os estados, pois não sei qual é a regra de preenchimento se são todos os estados ou não. Mas não consegui ver onde está sendo preenchida a dropdown. Essa linha não preenche  a dropdown:

    ddlEstado.SelectedValue = estado.Nome;

    Abaixo tenho um método simples para preencher uma dropdown

    public void PreencheComboUf(DropDownList ddl)
            {
                MedicalServiceEntities msuf = new MedicalServiceEntities();
                ObjectQuery<TB_ESTADO> estados = msuf.TB_ESTADO;
    
                ddl.Items.Add("Escolha um estado");
    
                var Estados = from esta in estados
                              select new
                              {
                                  esta.NomeEstado,
                                  esta.EstadoId
                              };
    
                foreach (var nm in Estados)
                {
                    ddl.Items.Add(new ListItem(nm.NomeEstado, nm.EstadoId.ToString()));
                    ddl.DataBind();
                }
            }

    Esse é apenas um exemplo que você adaptar ao seu código. Não precisa ser exatamente assim, mas que você preste atenção no foreach onde eu preencho a ddl. Isso sim, você pode fazer igual no seu código. Para preencher DropDown, você deve recorrer ao Items.Add(blá,blá,blá);
    quinta-feira, 5 de setembro de 2013 09:15
  • Bom dia Julio, segue um exemplo bacana sobre o assunto:

    //Classe Estado e suas propriedades 
            public class Estado 
            { 
                public int Id { get; set; } 
                public string NomeEstado { get; set; } 
            }          
     
            //Método que retorna um List<Estado> 
            private List<Estado> RetornaLista() 
            { 
                //Instância da Lista 
               List<Estado> lista = new List<Estado>(); 
     
                //Crio novo Estado e adciono á lista 
                Estado estado1 = new Estado(); 
                estado1.Id = 1; 
                estado1.NomeEstado = "Brasília"; 
                lista.Add(estado1); 
     
                //Crio novo Estado e adciono á lista 
                Estado estado2 = new Estado(); 
                estado2.Id = 2; 
                estado2.NomeEstado = "Minas Gerais"; 
                lista.Add(estado2); 
     
                //Crio novo Estado e adciono á lista 
                Estado estado3 = new Estado(); 
                estado3.Id = 3; 
                estado3.NomeEstado = "Espírito Santo"; 
                lista.Add(estado3); 
     
                //retorno a lista 
                return lista; 
            } 
     
            //método que carrega o DropDownLIst 
            private void CarregaDropDownList() 
            { 
                //seto a lista retornada pelo método acima 
                //como o Datasource do DropDownList 
                ddlEstado.DataSource = RetornaLista(); 
                //Indico que o DataValueField é a  
                //propriedade Id da classe Estado 
                ddlEstado.DataValueField = "Id"; 
                //Indico que o DataTextField é a  
                //propriedade NomeEstado da classe Estado 
                ddlEstado.DataTextField = "NomeEstado";  
                //Bindo o DropDownList 
                ddlEstado.DataBind(); 
            } 
     
            protected void Page_Load(object sender, EventArgs e) 
            { 
                //Se não for PostBack 
                if (!Page.IsPostBack) 
                { 
                    //Carrego o DropDownList atravéz do método 
                    CarregaDropDownList(); 
                } 
            }

    Fonte: http://goo.gl/n0kLBv

    quinta-feira, 5 de setembro de 2013 10:13