none
Ayuda. Como lleno un grid segun seleccion de un combobox

    Question

  • Amigos necesito de su ayuda, como lleno un grid depende de la seleccion de un combobox. He hecho algo, pero no me funciona

    Adjunto codigo 

    private void combo_depato_SelectedIndexChanged(object sender, EventArgs e)
            {
                Procesos departamento = new Procesos();
                combo_depato.DataSource = departamento.ObtenertodosDepartamentos();
                combo_depato.DisplayMember = "nombre_depato";
                combo_depato.ValueMember = "id_depato";
            }

            public void LoadGrid_por_depato()
            {
                if (combo_depato.Text != "")
                {
                    SqlConnection con = Conexion.GetConection();
                    SqlCommand cmd = new SqlCommand("sp_obtener_activo_by_departamento_para_reactivar", con);
                    cmd.CommandType = CommandType.StoredProcedure;

                    SqlParameter param = cmd.CreateParameter();
                    param.ParameterName = "idDpato";
                    param.Value = int.Parse(combo_depato.SelectedValue.ToString());
                    cmd.Parameters.Add(param);
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    this.grid.DataSource = dt;

                }

    }

    Monday, October 29, 2012 9:45 PM

Answers

  • - un primer consejo no uses el evento SelectedIndexChanged usa el SelectionChangeCommited

    - despues si el evento dice

    combo_depato_SelectedIndexChanged

    como vas a llenar alli el

    combo_depato.DataSource = departamento.ObtenertodosDepartamentos();

    mismo combo, eso esta muy mal, se supone que debes llenar otro combo relacionado


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marked as answer by William Castro Monday, October 29, 2012 11:04 PM
    Monday, October 29, 2012 10:56 PM

All replies

  •    HOLA !

           El codigo que estas usando suele estar bien , te arroja algun error ? .

           Pero por lo que veo lo sueles utilizar en el LOAD del grid, por lo cual solo te va a poblar solamente en cada carga del grid. Lo que puedes intentar es colocar tu codigo que tienes en el load del grid en el SelectedIndexChanged del combo, para que cada vez que cambie el index del combo te llene tu grid .


                   S A L U D O S !                                                                                                     msico.gif (40541 bytes)

                      R L J

    "No olvides marcar como respuesta la mejor opción</

    Monday, October 29, 2012 9:55 PM
  • Grax amigo pero mi problema fue este.

    Tenia el codigo de esta manera

    private void combo_depato_SelectedIndexChanged(object sender, EventArgs e)
            {
                Procesos departamento = new Procesos();
                combo_depato.DataSource = departamento.ObtenertodosDepartamentos();
                combo_depato.DisplayMember = "nombre_depato";
                combo_depato.ValueMember = "id_depato";
            }

    Lo unico que hize fue esto:

    private void loadComboDepto()

            {
                Procesos departamento = new Procesos();
                combo_depato.DisplayMember = "nombre_depato";
                combo_depato.ValueMember = "id_depato";
                combo_depato.DataSource = departamento.ObtenertodosDepartamentos();  
            }

    Monday, October 29, 2012 10:55 PM
  • - un primer consejo no uses el evento SelectedIndexChanged usa el SelectionChangeCommited

    - despues si el evento dice

    combo_depato_SelectedIndexChanged

    como vas a llenar alli el

    combo_depato.DataSource = departamento.ObtenertodosDepartamentos();

    mismo combo, eso esta muy mal, se supone que debes llenar otro combo relacionado


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marked as answer by William Castro Monday, October 29, 2012 11:04 PM
    Monday, October 29, 2012 10:56 PM