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

GridView con varios controles

Estas en el tema de GridView con varios controles en el foro de ASPX (.net) en Foros del Web. hola recientemente estoy realizando un sistema con el codigo de asp.net y la base de datos en mysql pero tengo un problema en un formulario ...
  #1 (permalink)  
Antiguo 02/07/2010, 14:17
 
Fecha de Ingreso: junio-2010
Mensajes: 19
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta GridView con varios controles

hola recientemente estoy realizando un sistema con el codigo de asp.net y la base de datos en mysql pero tengo un problema en un formulario este se llama REQUISICION lo que pasa es que en este formulario tengo los siguientes campos


Aceptar(boton) Cancelar(boton)

No de Orden >textbox
area solicitada>drop down list
fecha de pedido>calendar
observaciones> textbox

Agregar(boton)
nombre del producto > drop down list
cantidad>textbox


los primeros 4 campos son de la tabla de requisicion
y los dos ultimos son de la tabla de detalle_requisicion

lo que quiero hacer es que el nombre del producto la cantidad y la descripcion se agregen a un gridview la descripcion la voy a jalar de mi base de datos de la tabla de productos pero no hayo la manera que al momento de dar agregar me ponga la descripcion este es el codigo ke tengo para agregar el nombre y la cantidad pero de la descripcion no la se

protected void btnAgregar_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn[] cols = new DataColumn[4];
cols[0] = new DataColumn("Nombre del producto");
cols[1] = new DataColumn("cantidad");
cols[2] = new DataColumn("descripcion");
// cols[3] = new DataColumn();
dt.Columns.AddRange(cols);
if (GridView2.Rows.Count > 0)
foreach (GridViewRow r in GridView2.Rows)
{
dt.Rows.Add(r);
}
dt.Rows.Add(new object[] { ddlNombre.SelectedItem, txtCantidad.Text, descripcion });
GridView2.DataSource = dt;
GridView2.DataBind();
}

y en el boton de aceptar tengo este codigo


protected void btnAceptar_Click1(object sender, EventArgs e)
{
BD.NuevoRegistro("registro_requisicion", "no_orden, fecha_pedido, area_proveniente,observaciones");
BD.AgregaDato(txtOrden.Text, "Texto");
BD.AgregaDato(Calendar1.ToString(), "Fecha");
BD.AgregaDato(ddlArea.Text,"Texto");
BD.AgregaDato(txtObserv.Text, "Texto");
if (BD.EjecutarOperacion())
{
Response.Redirect("requisicion.aspx");
}
else
{
Response.Write("Datos no Grabados\n" + BD.MensajeError);
}


//int id= NuevoRegistroID("requisicion",campos, valores);
foreach (GridViewRow r in GridView2.Rows)
{
string col1 = r.Cells[1].Text;
string col2 = r.Cells[2].Text;
}

}

y aki no se como guardar el campo cantidad en la tabla de detalle_requisicion..
si ya estoy guardando otra informacion en otra tabla

espero que si me entiendan no se explicarme bien pero espero pronto una respuesta...

gracias!!!
  #2 (permalink)  
Antiguo 03/07/2010, 21:35
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: GridView con varios controles

Bueno me enrede un poco? pero si quieres pasar el nombre, has provado con

Código ASP:
Ver original
  1. ddlNombre.SelectedItem.text
  2. ddlNombre.SelectedItem.tostring

Y en cuanto a guardar el campo de la cantidad lo que pusiste es lo que debes hacer
Código ASP:
Ver original
  1. foreach (GridViewRow r in GridView2.Rows)
  2. {
  3. string col1 = r.Cells[1].Text;
  4. string col2 = r.Cells[2].Text;
  5. }
Solamente que cada vez que recorres, debes guardar, por ejemplo
Código ASP:
Ver original
  1. foreach (GridViewRow r in GridView2.Rows)
  2. {
  3. string col1 = r.Cells[1].Text;
  4. string col2 = r.Cells[2].Text;
  5. 'AQUI VA LA INSTRUCCION DE GUARDA
  6. }
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #3 (permalink)  
Antiguo 04/07/2010, 00:26
 
Fecha de Ingreso: junio-2010
Mensajes: 19
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta Respuesta: GridView con varios controles

hola jaullo bueno mira me voy a ir de paso por paso primeramente en el gridview quiero mostrar 3 campos
nombre del producto que lo tengo en un drop down list
cantidad que esta con un textbox
y descripcion este campo lo quiero jalar de la base de datos este campo es la descrpcion de cada producto debe de ser del que elijan en el drop list


recientemente tengo este codigo
Código:
DataTable dt = new DataTable();
DataColumn[] cols = new DataColumn[4];
cols[0] = new DataColumn("Nombre del producto");
cols[1] = new DataColumn("cantidad");
cols[2] = new DataColumn("descripcion");
// cols[3] = new DataColumn();
dt.Columns.AddRange(cols);
if (GridView2.Rows.Count > 0) 
foreach (GridViewRow r in GridView2.Rows)
{
dt.Rows.Add(r);
}
dt.Rows.Add(new object[] { ddlNombre.SelectedItem, txtCantidad.Text, descripcion });
GridView2.DataSource = dt;
GridView2.DataBind();
aqui estoy creando la tabla del gridview con sus columnas nombre producto, cantidad y descrpcion
Código:
dt.Rows.Add(new object[] { ddlNombre.SelectedItem, txtCantidad.Text, "descripcion" });
en esta parte me esta guardando el ddlNombre y el txtCantidad en el gridview pero para jalar la descripcion del producto que selecciono es el codigo ke no encuentro y el cual estoy pidiendo ayuda...


espero aver sido clara y que ojala puedas ayudarme..

gracias por tu respuesta..

saludos..
  #4 (permalink)  
Antiguo 06/07/2010, 10:36
 
Fecha de Ingreso: noviembre-2009
Mensajes: 46
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: GridView con varios controles

Hola,

no se si entendi bien pero la descripcion la quieres agregar desde tu base de datos a la grilla??
si es asi por que no creas una funcion a la cual le envies los o el parametro principal que esta relacionado a la descripcion y luego retornas ese valor, algo asi:

Funtion string SelectDescricion(variable(s) de filtro)
{
Realizas todo el proceso de la query
return descripcion
}

luego en tu asp
lo llamas asi

string descricion = SelectDescricion(Variable(s) para filtro);

y luego la ingresas a la grilla.

no se si eso es lo que quieres hacer eso por lo menos entendi yo

saludos
  #5 (permalink)  
Antiguo 07/07/2010, 16:24
 
Fecha de Ingreso: junio-2010
Mensajes: 19
Antigüedad: 13 años, 10 meses
Puntos: 0
Sonrisa SOLUCION.... GridView con varios controles

Código:
DataTable dt = new DataTable();
        DataColumn[] cols = new DataColumn[5];
        cols[1] = new DataColumn("Nombre del producto");
        cols[2] = new DataColumn("Clave del producto");
        cols[3] = new DataColumn("Cantidad");
        cols[4] = new DataColumn("Descripcion");
        dt.Columns.AddRange(cols);
        BD.PrepararBusqueda("productos", "descripcion", "id_producto =" +ddlNombre.SelectedValue);
        if (BD.BuscarRegistro())
        {
            descripcion = BD.MuestraCampo("descripcion");
        }
        if (GridView2.Rows.Count > 0)     
            foreach (GridViewRow r in GridView2.Rows)
            {
                dt.Rows.Add(r);
            }
        dt.Rows.Add(new object[] { ddlNombre.SelectedItem,ddlNombre.SelectedValue,  txtCantidad.Text, descripcion});
        GridView2.DataSource = dt;
        GridView2.DataBind();
Gracias a por sus respuestas ya pude solucionar mi problema lo que pasa es que tenia que hacer un metodo en el cual solo me jalara la descripcion de la base de datos el codigo de arriba es de la tabla del gridview y aqi esta el metodo

Código HTML:
try
        {
            Comando = new MySqlCommand();
            Comando.CommandText = Sql = "Select " + Campos_a_Devolver + " from " + Buscar_en_Tabla + " where " + Condicion_de_Busqueda; ;
            Comando.Connection = Conexion;
            if (Conexion.State == ConnectionState.Closed)
                Conexion.Open();
            Comando.ExecuteNonQuery();
            object res = Comando.ExecuteScalar();

        }
        catch (MySqlException mysqlex)
        {

        }
        finally
        {
            Conexion.Close();
        }        
espero ke les sea util a otras personas que tengan este problema...

Etiquetas: controles, gridview, aspx
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 00:55.