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

radio en Datagrid

Estas en el tema de radio en Datagrid en el foro de .NET en Foros del Web. Tengo un datagrid al que le he insertado un <imput type=radio>, con ello consigo una lista con varios radios y cuando selecciono en uno los ...
  #1 (permalink)  
Antiguo 24/06/2004, 03:38
 
Fecha de Ingreso: junio-2004
Mensajes: 24
Antigüedad: 19 años, 10 meses
Puntos: 0
radio en Datagrid

Tengo un datagrid al que le he insertado un <imput type=radio>, con ello consigo una lista con varios radios y cuando selecciono en uno los demas se deseleccionan.

Quisiera saber si es posible insertar un radioButton o radiobuttonList en vez de un <input type=radio> .Manteniento la misma logica explicada antes.

He buscado en muchos sitios pero no encuentro la solkución.

Gracias


  #2 (permalink)  
Antiguo 24/06/2004, 04:18
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Si seleccionas uno lo normal es que se desseleccione los otros,para eso son los radio button,si lo que deseas es poder seleccionar mas de uno lo que tienes que agregar son CheckBoxs,y para hacer la multiple seleccion sigue este artículo
http://www.developerfusion.com/show/4632/
EN mi casa tengo mas,si quieres te los pasos. Esto es lo que estoy haciendo yo ahora para mi proyecto,todavia no me ha salido entero,si quieres cuando lo acabe(tiene que ser esta tarde o mañana como muy tarde) te paso el código con explicaciones,un saludo
  #3 (permalink)  
Antiguo 24/06/2004, 04:35
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!!
Te explico, cuando llenas el datgrid con datos, se dispara el evento ItemDataBound, y es dentro de este evento en el que debes instanciar los radiobutton, ya que de otra forma sería complicado.
El ejemplo que te pasteo a continuación lo que hace es que cada vez que se crea una fila del datagrid, en la 2ª columna va insertando controles radiobutton. Es decir, en cada fila de la 2ª columna tendrás un radiobutton.

Código:
    Private Sub MyDataGrid_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

        If e.Item.ItemType = ListItemType.Item Or _
             e.Item.ItemType = ListItemType.AlternatingItem Then

            Dim hgc_control As New RadioButton

            With hgc_control
                If e.Item.ItemIndex = 0 Then 'Si es la primera fila
                    .Text = "Hola"
                ElseIf e.Item.ItemIndex = 1 Then 'Si es la segunda fila
                    .Text = "netcvblagil"
                End If
            End With

            e.Item.Cells(1).Controls.Clear()  'Columna a reemplazar 

            e.Item.Cells(1).Controls.Add(hgc_control)

        End If
    End Sub
Espero que te sirva!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #4 (permalink)  
Antiguo 24/06/2004, 08:19
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Oie netcvblagil te ha funcionado el codigo? Porque a mi todos los codigos que pruebo me dice lo mismo,no se encontro ningun atributo OnClick de elemento CheckBox,y me lo da aqui
<asp:CheckBox ID="CheckAll" OnClick="javascript: return select_deselectAll (this.checked, this.id);"
runat="server" />

A ver si a ti te sale esto y me lo puedes explicar,un saludo y gracias
  #5 (permalink)  
Antiguo 24/06/2004, 08:28
 
Fecha de Ingreso: junio-2004
Mensajes: 24
Antigüedad: 19 años, 10 meses
Puntos: 0
Un solo radio checkeado

Hola GERUNDIO,

Gracias por el ejmplo....

Desde luego hace lo que has comentado, pero se pueden seleccionar varios radios y eso no es lo que quiero. Solo quiero que este seleccionado un solo radio y se deseleccionen los demas...

Laura
  #6 (permalink)  
Antiguo 25/06/2004, 03:34
 
Fecha de Ingreso: junio-2004
Mensajes: 24
Antigüedad: 19 años, 10 meses
Puntos: 0
SunDarK:

A mi el codigo que me has comentado no me funciona..

Donde tienes el checkbox? dentro de un datagrid?
  #7 (permalink)  
Antiguo 25/06/2004, 03:52
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Si,te da el mismo error que a mi?
  #8 (permalink)  
Antiguo 25/06/2004, 04:02
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
hola!
Aham, entonces lo que tienes que insertar en el datagrid no es un radiobutton, sino un grupo de radiobuttons, pero eso es dificil de hacerlo teniendo en cuenta que quieres que cada radiobutton esté en una celda del datagrid, o no es así??. Si no es así, dime que te pongo el código que quieres.
Saludos!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #9 (permalink)  
Antiguo 25/06/2004, 05:00
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Vaya,hoy es mi dia de suerte acabo de encontra otro enlace donde explican lo de la Multiple Selección
Cita:
Selección de varios elementos utilizando una casilla de verificación (modelo de Hotmail)
En aplicaciones como Microsoft Hotmail®, los usuarios pueden "seleccionar" las filas activando una casilla y, a continuación, realizar una operación en todas las filas seleccionadas, por ejemplo, eliminarlas o copiarlas.

Para agregar esta funcionalidad, debe insertar una columna de plantilla en la cuadrícula y una casilla de verificación en la columna. De este modo, cuando la página se ejecute, los usuarios podrán activar los elementos con los que desean trabajar.

La acción real del usuario consiste en recorrer la colección Items de la cuadrícula, y consultar la columna adecuada (celda) para ver si la casilla de verificación está activada. En el siguiente ejemplo se muestra el modo de eliminar las filas de un conjunto de datos determinado correspondientes a los elementos activados por el usuario. Se asume que el conjunto de datos, dsBooks1, contiene la tabla Libros.

' Visual Basic
Private Sub btnDelete_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnDelete.Click
' Recorrer la cuadrícula en busca de filas seleccionadas
Dim i As Integer = 0
Dim cb As CheckBox
Dim dgi As DataGridItem
Dim bookid As Integer
Dim dr As dsBooks.BooksRow
For Each dgi In DataGrid1.Items
cb = CType(dgi.Cells(0).Controls(1), CheckBox)
If cb.Checked Then
' Determinar la clave del registro seleccionado...
bookid = CType(DataGrid1.DataKeys(i), Integer)
' ... situar el puntero en el conjunto de datos correspondiente...
dr = Me.DsBooks1.Books.FindBybookid(bookid)
' ... y eliminarlo.
dr.Delete()
End If
i += 1
Next
Me.SqlDataAdapter1.Update(DsBooks1)
Me.SqlDataAdapter1.Fill(DsBooks1)
DataGrid1.DataBind()
End Sub
Cuando llege a casa lo probaré,para ver el articulo completo dirigete a
http://www.microsoft.com/spanish/msd...listineditmode

  #10 (permalink)  
Antiguo 25/06/2004, 05:04
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!
Tal como te dije en mi ultimo post, he aqui la solución:
Código:
    Private Sub MyDataGrid_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

        If e.Item.ItemType = ListItemType.Item Or _
             e.Item.ItemType = ListItemType.AlternatingItem Then

            Dim hgc_control As New RadioButtonList


            With hgc_control
                If e.Item.ItemIndex = 0 Then 'Si es la primera fila
                    .Items.Add("Deportes")
                    .Items.Add("Politica")
                    .Items.Add("Sociedad")
                End If
            End With

            e.Item.Cells(1).Controls.Clear()  'Columna a reemplazar 

            e.Item.Cells(1).Controls.Add(hgc_control)

        End If
    End Sub
Eso sí, te aparecerán los radiobutton en la misma celda.....
Prueba lo de SunDarK, creo que siguiendo ese código si en lugar de instanciar checkbox instancias radiobutton te puede funcionar.
Suerte!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #11 (permalink)  
Antiguo 25/06/2004, 06:58
 
Fecha de Ingreso: junio-2004
Mensajes: 24
Antigüedad: 19 años, 10 meses
Puntos: 0
SunDarK:

Tiene buena pinta el codigo, pero en caso de que no te funcione me avisas.Yo tengo un datagrid y en cada fila un checkbox. Luego tengo un boton a parte y cuando doy al boton me recorro todas las filas del datagrid mirando los checkbox que estan chequeados para eliminarlo.
Se podria utilizar el mismo codigo para muchas cosas mas...si no te funciona me dices y lo pongo.


  #12 (permalink)  
Antiguo 26/06/2004, 04:16
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Oie Netcvblagil te importaria postear tu código?Estoy teniendo problemas con el otro,mushas gracias
  #13 (permalink)  
Antiguo 13/05/2005, 16:28
 
Fecha de Ingreso: mayo-2005
Mensajes: 1
Antigüedad: 19 años
Puntos: 0
hola..

el codigo es muy practico
sin embargo yo tengo el mismo problema
como puedo seleccionar unicamente un radio?

no tengo duda cuando me dicen que para ello necesito crear un grupo de radios, pero en mi caso solo requiero imprimir un radio por cada registro que pinta el datagrid

alguien tendra algo similar.. ?

gracias
  #14 (permalink)  
Antiguo 26/05/2006, 08:54
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 18 años
Puntos: 0
Sonrisa duda sobre datagrid con radiobuttons

Hola a todos!!!
keria pedirles un favorsote..
stoy hasiendo un proyecto en asp.net donde tengo un datagrid en el me manda traer los datos del usuario al seleccionar un usuario del datagrid me manda llamar otro datagrid k muestra las imagenes ingresadas por el usuario...
lo k tengo k hacer es ponerle radiobuttons al datagrid k me muestra las imagenes del usuario y luego con el radiobutton seleccionar solamente una imagen y la imagen k se selecciona la muestre en un label o un image...
este es el codigo de el datagrid k muestra las imagenes:
<asp:datagrid id="grdfoto" runat="server" Width="328px" BackColor="White" BorderColor="#999999" CellPadding="3" AutoGenerateColumns="False" OnPageIndexChanged="grdfoto_pagechange" OnSortCommand="grdfoto_sort"
AllowSorting="True" GridLines="Vertical" BorderWidth="1px" BorderStyle="Solid" ShowFooter="True" PageSize="4" AllowPaging="True" Height="220px" Visible="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="Checkbox2" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False">
<HeaderTemplate>
ID
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="id" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "ID") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="Usuario asc" HeaderText="Usuario">
<ItemTemplate>
<asp:HyperLink id="Hyperlink1" runat="server" text='<%# databinder.Eval(container, "DataItem.usuario")%>' NavigateUrl='<%#Databinder.Eval(container, "DataItem.usuario","Informacion_usuario.aspx?usuar io={0}")%>' Target="_blank">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<cc1:PictureColumn DataField="contenido" HeaderText="Foto" DataFormatString="&lt;IMG Src = &quot;{0}&quot; Height = 50px Width = 100px&gt;"></cc1:PictureColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" Position="TopAndBottom" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
Si alguien me pòdria ayudar se lo agadeceria mucho por k en verdad necesito ayuda y stoy un poko desesperada...
Muchas Gracias por su atencion
Atte:SASHA
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 10:51.