Foros del Web » Programación para mayores de 30 ;) » .NET »

¡este Datagrid!!!!!!

Estas en el tema de ¡este Datagrid!!!!!! en el foro de .NET en Foros del Web. Hola amigos.... Pues les comento cual es mi problema... ya hace rato vengo dandome duro con un datagrid q no encuentro como llenarlo cuando le ...
  #1 (permalink)  
Antiguo 12/01/2007, 07:09
Avatar de magosc  
Fecha de Ingreso: diciembre-2006
Mensajes: 72
Antigüedad: 17 años, 4 meses
Puntos: 0
¡este Datagrid!!!!!!

Hola amigos....
Pues les comento cual es mi problema... ya hace rato vengo dandome duro con un datagrid q no encuentro como llenarlo cuando le pongo al Datagrid Columnas fijas. Es decir, yo puedo llenarlo cuando el datagrid esta en AutoGenerateColumns = True...pero cuando lo pongo a False , no me pone las columnas que le paso en el datasource.... Y lo q me muestra es simplemente los Headers que le he puesto (de forma fija)...pero los datos que quiero pasarle desde una Tabla X, no me lo muestra....
Yo sé q es algo basico...pero ...no lo encuentro por ninguna parte...

Estoy trabajando con el VS2005....

Gracias ...
  #2 (permalink)  
Antiguo 12/01/2007, 09:11
 
Fecha de Ingreso: octubre-2006
Mensajes: 86
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: ¡este Datagrid!!!!!!

En VB.NET y SQL seria de esta manera

Dim DataAdapterInsChange As SqlDataAdapter
Dim DtsInsChange As DataSet

Dim Consulta1 As String
Consulta1 = "select * from TABLA_X"

CONEXION.Open()

DataAdapterInsChange = New SqlDataAdapter(Consulta1, CONEXION)
DtsInsChange = New DataSet()
DataAdapterInsChange.Fill(DtsInsChange, "TABLA_X")
DataGridView1.DataSource = DtsInsChange.Tables("TABLA_X").DefaultView

CONEXION.Close()

donde CONEXION es la conexion que estas utilizando para conectarte con SQL.

Espero que te ayude en algo
  #3 (permalink)  
Antiguo 12/01/2007, 09:54
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: ¡este Datagrid!!!!!!

Men.. ahi te va una ayuda...

Codigo aspx para vs 2005
Código:
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField HeaderText="Cantidad">
                    <ItemTemplate>
                        <asp:Label ID="lblCantidad" runat="server" Text='<%# Bind("Cantidad") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Existencia">
                    <ItemTemplate>
                        <asp:Label ID="lblExistencia" runat="server" Text='<%# Bind("Existencia") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button ID="BtnCalcular" runat="server" CommandArgument='<%# Bind("Cantidad") & "$" & Bind("Existencia") %>'
                             Text="Calcular" Width="131px" CommandName="Select" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:TextBox ID="txtResultado" runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
Código:
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            LoadData()
        End If
    End Sub

    Private Sub LoadData()
        '//suponiendo que en esta parte de codigo te traes los datos 
        '//de la base de datos
        Dim ds As DataSet = New Data.DataSet
        ds.Tables.Add("LoadID")
        With ds.Tables("LoadID")
            .Columns.Add(New DataColumn("Cantidad", GetType(System.Decimal)))
            .Columns.Add(New DataColumn("Existencia", GetType(System.Decimal)))
        End With

        Dim dr As DataRow
        dr = ds.Tables("LoadID").NewRow
        dr.Item("Cantidad") = 5
        dr.Item("Existencia") = 55
        ds.Tables("LoadID").Rows.Add(dr)

        dr = ds.Tables("LoadID").NewRow
        dr.Item("Cantidad") = 3
        dr.Item("Existencia") = 25
        ds.Tables("LoadID").Rows.Add(dr)

        '//ahora biendeamos al datagrid 
        GridView1.DataSource = ds
        GridView1.DataMember = "LoadID"
        GridView1.DataBind()
    End Sub

    Protected Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging
        Dim dr As GridViewRow = Me.GridView1.Rows(e.NewSelectedIndex)
        If Not dr Is Nothing Then 'AndAlso dr.RowState = DataControlRowState.Selected Then
            Dim lblCantidad As Label
            Dim txtResultado As TextBox
            Dim lblExistencia As Label

            lblCantidad = dr.Cells(0).FindControl("lblCantidad")
            lblExistencia = dr.Cells(1).FindControl("lblExistencia")
            txtResultado = dr.Cells(3).FindControl("txtResultado")

            txtResultado.Text = CDec(lblCantidad.Text) * CDec(lblExistencia.Text)

        End If
    End Sub
En este ejemplo, yo creo la tabla en tiempo de ejecucion y se la asigno al datagrid, en tu caso, debes traerte los datos de la base de datos, asegurandore que en tu select esten los campos 'Cantidad' y 'Existencia' y la tabla se llame 'LoadID'

Espero te sirva, saludos
  #4 (permalink)  
Antiguo 12/01/2007, 16:22
Avatar de magosc  
Fecha de Ingreso: diciembre-2006
Mensajes: 72
Antigüedad: 17 años, 4 meses
Puntos: 0
De acuerdo Re: ¡este Datagrid!!!!!!

HEEEEEEEEY!!!
Muchas gracias Stream , muchas gracias Nest!!!
SE LOS AGRADEZCO MUUUCHO!!!

  #5 (permalink)  
Antiguo 13/01/2007, 07:06
Avatar de magosc  
Fecha de Ingreso: diciembre-2006
Mensajes: 72
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: ¡este Datagrid!!!!!!

...hola de nuevo amigos...
Hoy tengo otra consulta relacionado con lo anterior...
Como puedo guardar un solo dato, en mi base de datos de los datos q me salen calculados anteriormente??

Gracias!!!
  #6 (permalink)  
Antiguo 13/01/2007, 09:30
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: ¡este Datagrid!!!!!!

Hola, de nada amigo...

Con respecto a tu ultima pregunta, lo que puedes hacer es meter codigo en el evento SelectedIndexChanging para hacer un update o insert, postea la estructura de tu tabla para ver bien q onda...

Saludos
  #7 (permalink)  
Antiguo 13/01/2007, 10:09
Avatar de magosc  
Fecha de Ingreso: diciembre-2006
Mensajes: 72
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Re: ¡este Datagrid!!!!!!

Hola Stream....
Si q soy bruto!!! .... Fijate q tu codigo q posteaste..si me funciono...sin embargo cuando trato de pasar mi tabla a tu codigo ...crees??...q he podido!! ....
He hecho varias cosas por ejemplo:

Código:
 Function LoadID() As ICollection
      adp = New SqlDataAdapter("select Cant AS Cantidad, Exist AS Existencia from PruebaX", cnx)
      adp.Fill(DS, "LoadID")
      cnx.Close()
      LoadID = New DataView(DS.Tables("LoadID"))
      '--------------------------- 
      '--------------------------- 
      DS.Tables.Remove("LoadID")
         
   End Function
Luego en el Load puse esto:

Código:
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
      If Not IsPostBack Then
               LoadID()
         
      End If
   End Sub
Luego la parte final del codigo lo deje asi como tu la enviaste:

Código:
 Protected Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging
      Dim dr As GridViewRow = Me.GridView1.Rows(e.NewSelectedIndex)
      If Not dr Is Nothing Then 'AndAlso dr.RowState = DataControlRowState.Selected Then
         Dim lblCantidad As Label
         Dim txtResultado As TextBox
         Dim lblExistencia As Label

         lblCantidad = dr.Cells(0).FindControl("lblCantidad")
         lblExistencia = dr.Cells(1).FindControl("lblExistencia")
         txtResultado = dr.Cells(3).FindControl("txtResultado")

         txtResultado.Text = CDec(lblCantidad.Text) * CDec(lblExistencia.Text)

      End If
   End Sub
La estructura de la tabla, la deje exactamente como la posteaste....

Y precisamente, la columna del resultado quisiera guardar..solo que no encuentro como.... Gracias Stream....

PD.: me pregunto como es q aguantas tanta ignorancia de mi parte....jeje...

Gracias Stream!!
  #8 (permalink)  
Antiguo 13/01/2007, 10:25
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: ¡este Datagrid!!!!!!

Haber, pa empezar, ponme la lista de campos que tiene tu tabla PruebaX (debe de haber un campo ID obligatorio...)

IDPruebaX int
Cantidad int
Existencia int


algun otro??
  #9 (permalink)  
Antiguo 13/01/2007, 11:04
Avatar de magosc  
Fecha de Ingreso: diciembre-2006
Mensajes: 72
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: ¡este Datagrid!!!!!!

Si.. esto es lo q tengo:

Id_x int
Cantidad int
Producto int
Existencia int
Despacho int
Total int


donde Existencia = Cantidad - Despacho, el campo Despacho es el q se introduce, existencia es el q se actualiza y cantidad es el campo q se introduce, y total es otro calculo q hago con SUM(Despacho)...
  #10 (permalink)  
Antiguo 13/01/2007, 11:18
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: ¡este Datagrid!!!!!!

Men, te respondé en la tarde ya que este en mi casa, por que ya no podré postear, me estan presionando con algunas cosas... Lo que quieres hacer esta muy facil, nada mas dame chanse mas tarde... saludos
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 22:01.