Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Listar nombres cada que se presiona boton

Estas en el tema de Listar nombres cada que se presiona boton en el foro de ASPX (.net) en Foros del Web. Buenas tardes, aqui otra vez consultando la siempre util ayuda de el foro, esta vez necesito no sumar numeros sino crear una lista, mi codigo ...
  #1 (permalink)  
Antiguo 13/04/2016, 18:51
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Busqueda Listar nombres cada que se presiona boton

Buenas tardes, aqui otra vez consultando la siempre util ayuda de el foro, esta vez necesito no sumar numeros sino crear una lista, mi codigo usa data table para sumar la variable "precio" de una BD
lo hace asi
Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         String codigo = Request["TextBox2"];
  4.         Conexion cnn = new Conexion();
  5.         cnn.conectar();
  6.        
  7.         DataTable dt = cnn.consultarPro(codigo);
  8.         try
  9.         {
  10.             if (dt.Rows.Count > 0)
  11.             {
  12.                 int numero1 = Convert.ToInt32(dt.Rows[0]["precio"].ToString());
  13.                 int numero2 = Convert.ToInt32(TextBox3.Text);
  14.                 int resultado = numero1 + numero2;
  15.                 TextBox2.Text = String.Empty;
  16.                 TextBox3.Text = resultado.ToString();
  17.                 int cantidad = int.Parse(Textotal.Text);
  18.                 cantidad++;
  19.                 Textotal.Text = cantidad.ToString();
  20.  
  21.             }
  22.             else
  23.             {
  24.                 Response.Write("no se encontro");
  25.                 TextBox2.Text = String.Empty;
  26.                
  27.             }
  28.         }
  29.         catch (SqlException ex)
  30.         {
  31.  
  32.             Response.Write("<center><h2>No se puede ejecutar</center></h2>" + ex.Message);
  33.         }
  34.         cnn.desconectar();
  35.     }

en pantalla se ve asi:
http://prntscr.com/arz1zy

de esa manera puedo sumar variable "precio" y sumar la cantidad de veces que he agregado objetos (click al boton) pero quiero hacer otra lista esta vez con un gridview que me liste el nombre llamado "Producto" en mi Tabla, que al presionar el botonm, haga una lista descendente tomando los nombres de la tabla, como mencione, lei sobre array lists pero solo hize un databind comun , por favor alguna asistencia?

Última edición por jmfmagnum; 13/04/2016 a las 18:53 Razón: tratar de agregar imagenes
  #2 (permalink)  
Antiguo 14/04/2016, 13:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Listar nombres cada que se presiona boton

Creo que lo que quieres haces es esto..
Código ASP:
Ver original
  1. protected void Productos_Click(object sender, EventArgs e)
  2.     {
  3.             DataTable dt = new DataTable();
  4.             Producto p = new Producto();
  5.  
  6.             dt = p.ListarProductos();
  7.  
  8.             if (dt != null)
  9.             {
  10.                 if (dt.Rows.Count > 0)
  11.                 {
  12.                     gvProductos.DataSource = dt;
  13.                     gvProductos.DataBind();
  14.                 }
  15.                 else
  16.                 {
  17.                     gvProductos.DataSource = null;
  18.                     gvProductos.DataBind();
  19.                 }
  20.             }
  21.             else
  22.             {
  23.                 gvProductos.DataSource = null;
  24.                 gvProductos.DataBind();
  25.             }
  26.         }

gvProductos es el Gridview

Saludos,
  #3 (permalink)  
Antiguo 14/04/2016, 13:56
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

gracias lo probare cuando salga de clases, una coas mas: el codigo compartira el lugar con "Button2", espero que no ocasiones problemas que dificulten la implementacion

Última edición por jmfmagnum; 14/04/2016 a las 14:03
  #4 (permalink)  
Antiguo 16/04/2016, 14:35
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

Bien va avanzando aun falta listar hacia abajo, por lo que lei, ArrayList podria servir pero nunca lo he usado la verdad asi que mientras practico lo que busco explico de nuevo:
imaginen que este codigo es el gridview:
Código ASP:
Ver original
  1. Producto
  2. Jarabe para la tos

cuando presiono el boton con un codigo (el numero en el texbox sease 1 por ejemplo) pasa eso, cuando apreto de nuevo con otro codigo se cambia lo que quiero es que vaya hacia abajo en una lista asi :
Código ASP:
Ver original
  1. Producto
  2. Jarabe para la tos
  3. Parche curita
  4. ETC.

el boton actualizado se ve asi
Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         String codigo = Request["TextBox2"];
  4.         Conexion cnn = new Conexion();
  5.         cnn.conectar();
  6.        
  7.         DataTable dt = cnn.consultarPro(codigo);
  8.         DataTable t = cnn.consultarP(codigo);
  9.         try
  10.         {
  11.             if (dt.Rows.Count > 0)
  12.             {
  13.                 int numero1 = Convert.ToInt32(dt.Rows[0]["precio"].ToString());
  14.                 int numero2 = Convert.ToInt32(TextBox3.Text);
  15.                 int resultado = numero1 + numero2;
  16.                 TextBox2.Text = String.Empty;
  17.                 TextBox3.Text = resultado.ToString();
  18.                 int cantidad = int.Parse(Textotal.Text);
  19.                 cantidad++;
  20.                 Textotal.Text = cantidad.ToString();
  21.  
  22.                 // grid view 2 intento
  23.                 Label11.Visible = true;
  24.                 GridView2.Visible = true;
  25.                 GridView2.DataSource = t;
  26.                 GridView2.DataBind();
  27.                 //
  28.  
  29.  
  30.             }
  31.             else
  32.             {
  33.                 Response.Write("no se encontro");
  34.                 TextBox2.Text = String.Empty;
  35.                
  36.             }
  37.         }
  38.         catch (SqlException ex)
  39.         {
  40.  
  41.             Response.Write("<center><h2>No se puede ejecutar</center></h2>" + ex.Message);
  42.         }
  43.         cnn.desconectar();
  44.     }

si preguntas, cree un nuevo codigo que pidiera solo el nombre para cargarlo al DataTable del Gridview2

Última edición por jmfmagnum; 16/04/2016 a las 14:39 Razón: error ortografico
  #5 (permalink)  
Antiguo 20/04/2016, 09:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Listar nombres cada que se presiona boton

Este código adiciona un nuevo registro al presionar el boton. Ahora solo debes de adecuar a lo que quieres hacer.
Código ASP:
Ver original
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 cargarGrilla();
  6.             }
  7.         }
  8.  
  9.         protected void OnClick_btnAgregar(object sender, EventArgs e)
  10.         {
  11.             adicionarFila();
  12.         }
  13.  
  14.         private void cargarGrilla()
  15.         {
  16.             //Id, Nombre, Apellido
  17.             Alumno a = new Alumno();
  18.             DataTable dt = new DataTable();
  19.  
  20.             //consulta que me permite traer de la BD la lista de alumnos
  21.             dt = a.Alumno_Listar();
  22.  
  23.             //Guardamos los datos en una variable de session
  24.             Session["dt"] = dt;
  25.  
  26.             //Asignamos el dt al gridview
  27.             gvPrueba.DataSource = dt;
  28.             gvPrueba.DataBind();
  29.         }
  30.  
  31.         private void adicionarFila()
  32.         {
  33.             DataTable dt = new DataTable();
  34.             dt = (DataTable) Session["dt"];
  35.  
  36.             //Insertamos los nuevos registros
  37.             dt.Rows.Add(tbId.Text, tbNombre.Text, tbApellido.Text);
  38.  
  39.             //Asignamos el dt al gridview
  40.             gvPrueba.DataSource = dt;
  41.             gvPrueba.DataBind();
  42.  
  43.              //Actualizamos el dt de la variable de sessión
  44.             Session["dt"] = dt;
  45.  
  46.         }

Salos,
  #6 (permalink)  
Antiguo 20/04/2016, 13:10
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

gracias, aunque no necesito session, y agregar cosas de textbox no es necesario porque leo de la consulta del datatable (y no se como cambiarlo sin que lanze error)
  #7 (permalink)  
Antiguo 20/04/2016, 17:47
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

bueno si, mi profesor me dijo que "session", si ayudaba asi que trate la ayuda

de Uagrm quedo asi :
(boton y funcion por separado)
Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         String codigo = Request["TextBox2"];
  4.         Conexion cnn = new Conexion();
  5.         cnn.conectar();
  6.        
  7.         DataTable dt = cnn.consultarPro(codigo);
  8.         DataTable t = cnn.consultarP(codigo);
  9.         try
  10.         {
  11.             if (dt.Rows.Count > 0)
  12.             {
  13.                 int numero1 = Convert.ToInt32(dt.Rows[0]["precio"].ToString());
  14.                 int numero2 = Convert.ToInt32(TextBox3.Text);
  15.                 int resultado = numero1 + numero2;
  16.                 TextBox2.Text = String.Empty;
  17.                 TextBox3.Text = resultado.ToString();
  18.                 int cantidad = int.Parse(Textotal.Text);
  19.                 cantidad++;
  20.                 Textotal.Text = cantidad.ToString();
  21.              
  22.  
  23.               {
  24.                     adicionarFila();
  25.                }
  26.  
  27.                 // arraylist para lista compras
  28.  
  29.           //     ArrayList Array_L = new ArrayList();
  30.  
  31.           //    t.Columns.Add(".");
  32.            //  for (int i = 0; i < Array_L.Count; i++)
  33.              //   {
  34.                //    t.Rows.Add();
  35.                  //  t.Rows[i]["Producto"] = Array_L[i].ToString();
  36.                // }
  37.                
  38.                
  39.                
  40.                
  41.                 // grid view lista compras
  42.              GridView2.DataSource = t;
  43.               GridView2.DataBind();
  44.                 //-------------------------
  45.  
  46.  
  47.             }
  48.             else
  49.             {
  50.                 Response.Write("no se encontro");
  51.                 TextBox2.Text = String.Empty;
  52.                
  53.             }
  54.         }
  55.         catch (SqlException ex)
  56.         {
  57.  
  58.             Response.Write("<center><h2>No se puede ejecutar</center></h2>" + ex.Message);
  59.         }
  60.         cnn.desconectar();
  61.     }
  62.  
  63.    private void adicionarFila()
  64.     {
  65.  
  66.       String codigo = Request["TextBox2"];
  67.         Conexion cnn = new Conexion();
  68.        cnn.conectar();
  69.  
  70.          DataTable t = new DataTable();
  71.             t = (DataTable) Session["t"];
  72.  
  73.             //Insertamos los nuevos registros
  74.           t.Rows.Add();
  75.              t.Rows[0]["Producto"].ToString();
  76.  
  77.             //Asignamos el dt al gridview
  78.             GridView2.DataSource = t;
  79.             GridView2.DataBind();
  80.  
  81.              //Actualizamos el dt de la variable de sessión
  82.             Session["t"] = t;
  83.  
  84.  
  85.    }
  86.  
  87. }

pero como muestra esta imagen :


http://prnt.sc/autl38

me lanza error, tendran que usar el link, porque el sistema de poner imagenes del foro es bueno, arcaico
  #8 (permalink)  
Antiguo 21/04/2016, 12:57
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Listar nombres cada que se presiona boton

Tu error es por que no le estás pasando los parámetro al t.Rows.Add(). Bueno, hice una modificación rápida el código, pero sí funciona.
Código ASP:
Ver original
  1. protected void OnClick_btnAgregar(object sender, EventArgs e)
  2.         {
  3.             adicionarFila();
  4.         }
  5.        
  6.         private void adicionarFila()
  7.         {
  8.             //Id, Nombre, Apellido
  9.             Alumno a = new Alumno();
  10.            
  11.             DataTable dt = new DataTable();
  12.             dt = a.Alumno_Obtener_PorCodigo(Int32.Parse(tbCodigo.Text));
  13.  
  14.             if (dt != null)
  15.             {
  16.                 if (dt.Rows.Count > 0)
  17.                 {
  18.                     string id = dt.Rows[0]["Codigo"].ToString();
  19.                     string codigo = dt.Rows[0]["Nombre"].ToString();
  20.                     string descripcion = dt.Rows[0]["Apellido"].ToString();
  21.  
  22.                     if (gvPrueba.Rows.Count == 0)
  23.                     {
  24.                         dtPrueba = dt;
  25.                     }
  26.                     else
  27.                     {
  28.                         dt = dtPrueba;
  29.                         dt.Rows.Add(id, codigo, descripcion);
  30.                     }
  31.                     gvPrueba.DataSource = dt;
  32.                     gvPrueba.DataBind();
  33.                 }
  34.             }
  35.         }
  36.  
  37.         private DataTable dtPrueba
  38.         {
  39.             get
  40.             {
  41.                 if (ViewState["dtPrueba"] != null)
  42.                     return (DataTable)ViewState["dtPrueba"];
  43.                 else
  44.                     return null;
  45.             }
  46.             set
  47.             {
  48.                 if (ViewState["dtPrueba"] != null)
  49.                     ViewState["dtPrueba"] = value;
  50.                 else
  51.                     ViewState.Add("dtPrueba", value);
  52.             }
  53.         }
Saludos,
  #9 (permalink)  
Antiguo 25/04/2016, 19:27
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

pregunta hyper noob

para que es?
Código ASP:
Ver original
  1. Alumno a = new Alumno();

asumo que es la conexion a la BD, supongo


donde se especifica?
Código ASP:
Ver original
  1. Alumno_Obtener_PorCodigo

asumo que es la funcion para buscar, perdon por mi tontas pregunta, quiero estar seguro



estoy probando mientras con

Conexion cnn = new Conexion();
cnn.conectar();

DataTable dt = new DataTable(); // cnn.consultarPro(codigo);
dt = cnn.consultarPro(Int32.Parse(TextBox2.Text));

pero la ultima linea me tira error

Última edición por jmfmagnum; 25/04/2016 a las 19:52 Razón: actualizar informacion
  #10 (permalink)  
Antiguo 26/04/2016, 07:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Listar nombres cada que se presiona boton

Mira, el proyecto lo trabajo en arquitectura 3 capas, Presentación, Negocio y Datos, en la capa de Negocio tengo mis métodos que tiene conexion a la BD.
Esto es para ser más ordenado al momento de programar.
  #11 (permalink)  
Antiguo 26/04/2016, 08:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Listar nombres cada que se presiona boton

Este código traté de acomodar de acuerdo a lo que quieres hacer..podes copiar, pegar y luego los probas..
Código ASP:
Ver original
  1. <asp:GridView runat="server" ID="gvPrueba" AutoGenerateColumns="true"  >
  2. </asp:GridView>

Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         String codigo = tbCodigo.Text;
  4.         Conexion cnn = new Conexion();
  5.         cnn.conectar();
  6.        
  7.         DataTable aux = new DataTable();
  8.  
  9.         aux.Columns.Add("Producto");
  10.         aux.Columns.Add("Precio");
  11.         aux.Columns.Add("Codigo");
  12.         aux.Columns.Add("Cantidad");
  13.    
  14.         DataTable dt = new DataTable();
  15.         dt = cnn.consultarPro(codigo);
  16.        
  17.         try
  18.         {
  19.             if (dt.Rows.Count > 0)
  20.             {
  21.                 //este dato yo me lo inventé, vos debes saber en que posición
  22.                 //se encuentra el nombre del producto
  23.                 string producto = dt.Rows[0]["producto"].ToString();
  24.  
  25.                 int numero1 = Convert.ToInt32(dt.Rows[0]["precio"].ToString());
  26.                 int numero2 = Convert.ToInt32(TextBox3.Text);
  27.              
  28.                 int resultado = numero1 + numero2;
  29.                 TextBox2.Text = String.Empty;
  30.                 TextBox3.Text = resultado.ToString();
  31.                 int cantidad = int.Parse(Textotal.Text);
  32.                 cantidad++;
  33.                 Textotal.Text = cantidad.ToString();
  34.  
  35.                 Label11.Visible = true;
  36.                
  37.                 if (gvPrueba.Rows.Count == 0)
  38.                 {
  39.                     aux.Rows.Add(producto, num1, codigo, Textotal.Text);
  40.                     dtPrueba = aux;
  41.                 }
  42.                 else
  43.                 {
  44.                     aux = dtPrueba;
  45.                     aux.Rows.Add(producto, num1, codigo, Textotal.Text);
  46.                 }
  47.                 GridView2.DataSource = aux;
  48.                 GridView2.DataBind();
  49.             }
  50.             else
  51.             {
  52.                 Response.Write("no se encontro");
  53.                 TextBox2.Text = String.Empty;
  54.                
  55.             }
  56.         }
  57.         catch (SqlException ex)
  58.         {
  59.  
  60.             Response.Write("<center><h2>No se puede ejecutar</center></h2>" + ex.Message);
  61.         }
  62.         cnn.desconectar();
  63.     }
  64.  
  65.     private DataTable dtPrueba
  66.         {
  67.             get
  68.             {
  69.                 if (ViewState["dtPrueba"] != null)
  70.                     return (DataTable)ViewState["dtPrueba"];
  71.                 else
  72.                     return null;
  73.             }
  74.             set
  75.             {
  76.                 if (ViewState["dtPrueba"] != null)
  77.                     ViewState["dtPrueba"] = value;
  78.                 else
  79.                     ViewState.Add("dtPrueba", value);
  80.             }
  81.         }
Espero tus comentarios..
  #12 (permalink)  
Antiguo 26/04/2016, 18:46
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Listar nombres cada que se presiona boton

si eso era mi unica duda para implementarlo, despues de modificarlo a mis necesidaes, quedo asi
Código ASP:
Ver original
  1. private void adicionarFila()
  2.     {
  3.         String codigo = Request["TextBox2"];
  4.         Conexion cnn = new Conexion();
  5.         cnn.conectar();
  6.  
  7.  
  8.         DataTable dt = new DataTable();
  9.         dt = cnn.consultarP(codigo);
  10.  
  11.         //Guardamos los datos en una variable de session
  12.         Session["dt"] = dt;
  13.  
  14.         dt = (DataTable)Session["dt"];
  15.  
  16.         if (dt != null)
  17.         {
  18.             if (dt.Rows.Count > 0)
  19.             {
  20.                 string pro = dt.Rows[0]["Producto"].ToString();
  21.                
  22.  
  23.                 if (GridView2.Rows.Count == 0)
  24.                 {
  25.                     dtPrueba = dt;
  26.                 }
  27.                 else
  28.                 {
  29.                     dt = dtPrueba;
  30.                     dt.Rows.Add(pro);
  31.                 }
  32.                 GridView2.DataSource = dt;
  33.                 GridView2.DataBind();
  34.             }
  35.         }
  36.  
  37.  
  38.  
  39.  
  40.    }

y funciona perfecto, muchas gracias de nuevo

Etiquetas: arraylist, aspx, c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:45.