none
Como pasar datos seleccionados de gridview a un listbox?? RRS feed

  • Pregunta

  • Hola, me gustaría que me ayudaran, verán tengo un gridview paginado con una columna de checkbox, que se llena manualmente. Entonces lo que me gustaría que hiciera sería que al dar clik en el checkbox me pasara los datos automáticamente al listbox (la idea es como para formar una lista y veas a los que haz seleccionado), tengo una idea sobre esto pero no logro aterrizar la idea.. este es el codigo que tengo:

        protected void chkSelectAll_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chk;
            foreach (GridViewRow rowItem in GridView1.Rows)
            {
                chk = (CheckBox)(rowItem.Cells[0].FindControl("chk1"));
                chk.Checked = ((CheckBox)sender).Checked;
            }

            //Recuperando el objeto CheckBox seleccionado
            bool addProject = ((CheckBox)sender).Checked;


            //Accediento a los otros elementos que se encuentran en la misma fila del CheckBox seleccionado
            //string cked = ((System.Web.UI.MobileControls.Label)((CheckBox)sender).Parent.FindControl("chkSelectAll")).Text;
            string nombre = ((System.Web.UI.MobileControls.Label)((System.Web.UI.MobileControls.Label)sender).Parent.FindControl("nombre")).Text;
            string usuarios = ((System.Web.UI.MobileControls.Label)this.GridView1.SelectedRow.FindControl("Usuario")).Text;

            foreach (GridViewRow rowI in GridView1.Rows)
            {
                CheckBox chk11;
               chk11 = (CheckBox)(rowI.FindControl("chk1"));
                 if (chk11.Checked == true)
                {

                    this._presenter.UpdateAssignedProjects(usuarios, nombre, addProject);  
                    ListBox1.Items.Add(GridView1.SelectedRow);

                }
            }
        }

     

    Obviamente estoy equivocada en el codigo, pero si tienen un ejemplo en cuál basarme??? o una corrección a este código por favor.. se los agradecería mucho..!!!


    Joy Montero
    miércoles, 15 de diciembre de 2010 17:41

Respuestas

Todas las respuestas

  • hola

    la misma tecnica que aplico en este articulo

    [ASP.NET] – Pasar valores entre dos GridView

    podrias usarla para apsar items entre el gridview y el listbox

    por ahi cambie un poco la cantidad de info que recibira el segundo control, ya qe el listbox no muestra varias columnas, pero el camino podrias venir por aqui

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 15 de diciembre de 2010 17:46
  • Gracias.. lo voy a checar.. verás de hecho es que son 2 columnas las que tengo en el gridview.. las columnas son nombre y usuario (usuario está escondida) y pues mi idea es pasar al listbox pues como texto el nombre.. y en el valor pues lo correspondiente a usuario.

    Entonces ahorita veo a ver como le agrego el codigo jeje..


    Joy Montero
    miércoles, 15 de diciembre de 2010 17:51
  • Gracias.. lo voy a checar.. verás de hecho es que son 2 columnas las que tengo en el gridview.. las columnas son nombre y usuario (usuario está escondida) y pues mi idea es pasar al listbox pues como texto el nombre.. y en el valor pues lo correspondiente a usuario.

    Entonces ahorita veo a ver como le agrego el codigo jeje..


    Joy Montero

    Lenadro.. disculpa pero una pregunta estoy viendo en el ejemplo lo siguiente:

    dtArticulos.ArticulosDataTable dtArt = Session["articulos"] as dtArticulos.ArticulosDataTable;

    y por lo que veo el dtArticulos es para llenar el gridview verdad?? Bueno yo cargo el gridview manualmente como te mecioné anteriorimente.. pero mis datos los tengo en dentro de una base de datos.. en una tabla que se llama empleados. Para ello tengo lo siguiente:

      protected void load_users_onto_search_ddl()
        {

    SqlConnection cn = new SqlConnection(common_conn);
            //despues creamos un data adapter
            SqlDataAdapter da = new SqlDataAdapter("SELECT usuario, nombre from empleados WHERE email is not null ORDER BY nombre", cn);
            //despues un dataset
            System.Data.DataSet ds = new System.Data.DataSet();
            //lo llenamos
            da.Fill(ds);
            GridView1.Visible = true;
            GridView1.AllowPaging = true;
            this.GridView1.DataSource = ds.Tables[0];
            // llenamos el grid con los datos que tenemos en el dataset
            this.GridView1.DataBind();

    }

    entonces como podría ponerlo yo?? porque estas utilizando Row y datatable.. pero yo no logro aocmodarle en ese aspecto jejeje.. una pista por favor???


    Joy Montero
    miércoles, 15 de diciembre de 2010 18:24
  • Mira desde mi basta experiencia creo que lo mejor que puedes hacer es exportar los datos de tu grisview a un archivo xml y despues asignar al datasource de tu listbox el archivo xml.

    Saludos


    "Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta". Si la respuesta te ha sido util Votala."
    jueves, 16 de diciembre de 2010 15:20
  • Pues nunca he utilizado xml.. y la verdad no se como hacerlo jeje.. así que en mi humilde opinion y debido a mis escasos conocimientos jeje.. pues mejor acá bajito el nivel jeje.  Aun no encuentro la respuesta a mi problema.. ok?? jeje... Saludos!
    Joy Montero
    jueves, 16 de diciembre de 2010 23:23
  • Mira aqui te dejo un link que quizas pueda orientarte

    http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/.net/respuestas/2116933/pasar-datos-de-un-gridview-a-un-listbox

    Saludos

     


    "Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta". Si la respuesta te ha sido util Votala."
    viernes, 17 de diciembre de 2010 12:01