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

Datagrid Seleccion de una sola fila

Estas en el tema de Datagrid Seleccion de una sola fila en el foro de .NET en Foros del Web. Como puedo hacer para que solo se pueda seleccionar una sola fila del datagrid al hacer click sobre una celda o a traves del selector ...
  #1 (permalink)  
Antiguo 21/12/2005, 09:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
Datagrid Seleccion de una sola fila

Como puedo hacer para que solo se pueda seleccionar una sola fila del datagrid al hacer click sobre una celda o a traves del selector del datagrid y que no permita seleccionar varias
  #2 (permalink)  
Antiguo 21/12/2005, 09:12
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
La opcion era MULTISELECT (o algo asi xD)
  #3 (permalink)  
Antiguo 22/12/2005, 09:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
No me es claro lo que me estas diciendo :( soy un novato en esto
  #4 (permalink)  
Antiguo 22/12/2005, 09:15
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Chequea esta imagen
Código:
http://www.bilder-hosting.de/uploads/f5188b04fc.jpg
. Haber si te ayuda
  #5 (permalink)  
Antiguo 22/12/2005, 10:22
 
Fecha de Ingreso: agosto-2005
Ubicación: Caracas, Venezuela
Mensajes: 11
Antigüedad: 18 años, 9 meses
Puntos: 0
Sonrisa Te presento dos maneras de hacerlo tu eliges .

Código:
1.
<<Coloca este codigo en el ItemCommand del Datagrid>>
Private Sub DTGCSupOrdenRetASAP_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DTGCSupOrdenRetASAP.ItemCommand

<<Maneja cada caso al hacer clic en un boton de cualquier registro del DataGrid>>
Select Case e.CommandName

            Case "BtnProcesar" <<el “BtnProcesar”Viene del Dataagrid>>
<<preguntas por un valor especifico de una celda>>
  
              If e.Item.Cells(6).Text = "NO" Then
                    <<Declaras variables de tipo string>>
                    Dim Celda1 As String
                    Dim Celda2 As String
                    '<<Obtienes los valores de cada celda en la fila seleccionada,pasas como parámetro el numero de la columna del DG>>
                    Celda1 = e.Item.Cells(0).Text
                    Celda2 = e.Item.Cells(4).Text

                Else
                    '<<Envias mensaje en caso contrario>>
                End If

            Case "BtnCancelar"
                '<<En caso de que quieras hacer otra accion como cancelar>> 
                Dim Celda1 As String
                Celda1 = e.Item.Cells(0).Text

End Select

2. Otra manera de Hacerlo, aquí extraes el row del Dataset

Select Case e.CommandName

            Case "Aceptar"

                Dim Var As String
                'Devuelve el indice de pagina y fila que ha sido seleccionada
                'Extraigo el valor del DataGrid
                VarPagIndice = DG.CurrentPageIndex * 10 + e.Item.ItemIndex
                'Obtener la fila seleccionada
                DG.SelectedIndex = e.Item.ItemIndex

                Adpt.Fill(Ds1)

                Var= Ds1.Tables("table1").Rows(VarPagIndice).Item("nombredecampo")
                
                Creo el Command
                Dim cmd As New SqlCommand
                cmd.CommandType = CommandType.StoredProcedure
                cmd.CommandText = "Spc "
                cmd.Connection = Cn

                'Paso los Parametros al SPC
                cmd.Parameters.Add("@Param")
               'Ejecutar el procedure
                If Cn.State.Open Then
                    Cn.Close()
                    Cn.Open()
                Else
                    Cn.Open()
                End If
                cmd.ExecuteNonQuery()
                'Limpia la tabla del DS 
                Ds.Tables("table1").Rows.Clear()
                Adpt.Fill(Ds1)
                DG.DataBind()
        End Select
  #6 (permalink)  
Antiguo 22/12/2005, 13:48
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
Eso es para un datagrid para webforms yo necsito para winforms
  #7 (permalink)  
Antiguo 22/12/2005, 13:51
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
tambien debe ser en visual studio 2003
  #8 (permalink)  
Antiguo 22/12/2005, 15:17
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Para visual Studio 2003 y con WinForms es la imagen que te he puesto, aunque sea la versión 2005, la propiedad es la misma.
  #9 (permalink)  
Antiguo 27/12/2005, 05:35
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
Todavia no puedo seleccionar una sola fila :(
Como consigo el control DatagridView que me mostras en la imagen
  #10 (permalink)  
Antiguo 27/12/2005, 10:38
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Hola fredy666,
La propiedad Multiselect no existe para el control datagrid, por lo menos en la version 2003.
Alguna otra idea?
__________________
..:: moNTeZIon ::..
  #11 (permalink)  
Antiguo 27/12/2005, 11:42
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues ahora mismo no se me ocurre ninguna, y encima termina de desinstalar el VB2003 :(.
Si podeis hacerme una captura de pantalla de las propiedades de un DataGrid supongo que podria deciros que propieda es la que buscais.
  #12 (permalink)  
Antiguo 27/12/2005, 21:39
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Como dice moNTeZIon, NO existe esa propiedad para la clase Datagrid (en todas versiones del .NET Framework, si no me equivoco), lo que se podría hacer es jugar con el evento MouseDown y la clase HitTestInfo.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #13 (permalink)  
Antiguo 28/12/2005, 01:12
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Mira el cuarto post y verás como si que existe esa propiedad.

Aqui teneis otra captura, señalando el ontrol que utilizo y sus propiedades (ya se que es en 2005, pero estoy convencido de que lo he utilizado en 2003 igualmente)

Código:
http://www.bilder-hosting.de/uploads/bb001ca5b5.jpg
  #14 (permalink)  
Antiguo 28/12/2005, 02:27
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
No te confundas fredy, eso no es un control DataGrid...
Por lo que veo es un control DataGridView.. que es la primera vez que lo veo, por cierto.

Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 28/12/2005 a las 09:03
  #15 (permalink)  
Antiguo 28/12/2005, 02:59
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
AAAAAAAAAAAAAA, me voy a volver loco, ¿o sea que no estabamos hablando de lo mismo???????????????

Po perdón :P
  #16 (permalink)  
Antiguo 28/12/2005, 10:00
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
Ahora he conseguido poder seleccionar una sola fila pero solo cuando doy click en la fila que quiero pero puedo seguir seleccionando varias filas con el teclado y eso debo bloquear tambien alguna solucion definitiva??
  #17 (permalink)  
Antiguo 28/12/2005, 14:07
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Dado que no dispones de la propiedad para establecer ese comportamiento en el control, yo investigaría por el camino que te comenta xknown, cuatro posts más para arriba.
En un evento MouseDown del datagrid podrías comprobar cuantas filas hay seleccionadas, y entonces ya lo tendrías, segun las que estén seleccionadas, actuas en consecuencia, desseleccionandolas, o como más te convenga.

Suerte!

P.S.: Por cierto, cómo seleccionas una fila del datagrid con el teclado?
__________________
..:: moNTeZIon ::..
  #18 (permalink)  
Antiguo 29/12/2005, 21:52
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
http://groups.google.com/group/micro...&start=2&num=3

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 05:04.