none
Repeater control con radiobuttons RRS feed

  • Pregunta

  • 

    Hola tengo un repeater control que quiero  llenar con una lista de preguntas que se contestan con un sí o un no

    intenté con  este código y me dice "Specified cast is not valid " en la siguiente línea

     <asp:RadioButton ID="rdSolucion3_Si" Checked='<%#Eval("Si")%>' GroupName='<%#Eval("Grupo")%>' runat="server" />

    Alguien puede decirme si  e sposible hacer lo que quiero hacer?, estoy llenado la lista con  la siguiente consulta

    Select Item Banco,'True' Si,'False' No,id Grupo from  AdmListasDesplegables where NombreLista='BancosAnticipos'

    <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                <span style='font-weight:bold; margin-right:20px;' ></span><%#Eval("Banco")%><br />
                    <asp:RadioButton ID="rdSolucion3_Si" Checked='<%#Eval("Si")%>' GroupName='<%#Eval("Grupo")%>' runat="server" />
                    <asp:RadioButton ID="rdSolucion3_No" Checked='<%#Eval("No")%>' GroupName='<%#Eval("Grupo")%>' runat="server" />
                </ItemTemplate>
                </asp:Repeater>
    
    



    Marilú

    jueves, 25 de junio de 2015 22:00

Respuestas

  • Hola, probe tu codigo, y lo puse exactamente como lo tienes en la pagina asp, solo en el code behind puse lo siguiente:

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim Datos As List(Of dato) = New List(Of dato)
            Datos.Add(New dato With {.Banco = "Banco1", .Grupo = "Grupo1", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco2", .Grupo = "Grupo2", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco3", .Grupo = "Grupo3", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco4", .Grupo = "Grupo4", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco5", .Grupo = "Grupo5", .No = True, .Si = False})
            Repeater1.DataSource = Datos
            Repeater1.DataBind()
    
        End Sub
        Public Class dato
            Private _Banco As String
            Public Property Banco() As String
                Get
                    Return _Banco
                End Get
                Set(ByVal value As String)
                    _Banco = value
                End Set
            End Property
    
            Private _Si As Boolean
            Public Property Si() As Boolean
                Get
                    Return _Si
                End Get
                Set(ByVal value As Boolean)
                    _Si = value
                End Set
            End Property
    
            Private _No As Boolean
            Public Property No() As Boolean
                Get
                    Return _No
                End Get
                Set(ByVal value As Boolean)
                    _No = value
                End Set
            End Property
            Private _Grupo As String
            Public Property Grupo() As String
                Get
                    Return _Grupo
                End Get
                Set(ByVal value As String)
                    _Grupo = value
                End Set
            End Property
    
        End Class


    Y todo funciono correctamente.

    Probablemente el error que tienes es porque algun tipo de dato (probablemente Si o No) no son del tipo boolean, y no se pueda convertir a boolean.

    Revisa que regresan los campos Si y No, deben regresar un True o False.

    Puedes tambien intentar con algo como:

    <%# cbool(Eval("Si"))%>

    para ver si se corrige.

    Saludos.

    viernes, 26 de junio de 2015 19:12

Todas las respuestas

  • mm el repeater imagino tiene el mismo problema que el gridview con los radiobutton

    ASP.Net GridView Radio Button Single Selection - Select only one RadioButton from Column

    como veras hay que agregar codigo javascript para que funcione correctamente

    esto se produce porque no funciona el GroupName de forma correcta

    -----

    del articulo

    Adding a GridView Column of Radio Buttons (C#)

    analiza el titulo "Step 3: Adding a Column of Radio Buttons"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 25 de junio de 2015 23:32
  • Que quieres hacer con esos raidobuttons? quiza hay una forma mas sencilla bro

    Si mi respuesta fue útil ayudame marcándola como correcta.

    viernes, 26 de junio de 2015 18:25
  • Hola, probe tu codigo, y lo puse exactamente como lo tienes en la pagina asp, solo en el code behind puse lo siguiente:

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim Datos As List(Of dato) = New List(Of dato)
            Datos.Add(New dato With {.Banco = "Banco1", .Grupo = "Grupo1", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco2", .Grupo = "Grupo2", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco3", .Grupo = "Grupo3", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco4", .Grupo = "Grupo4", .No = True, .Si = False})
            Datos.Add(New dato With {.Banco = "Banco5", .Grupo = "Grupo5", .No = True, .Si = False})
            Repeater1.DataSource = Datos
            Repeater1.DataBind()
    
        End Sub
        Public Class dato
            Private _Banco As String
            Public Property Banco() As String
                Get
                    Return _Banco
                End Get
                Set(ByVal value As String)
                    _Banco = value
                End Set
            End Property
    
            Private _Si As Boolean
            Public Property Si() As Boolean
                Get
                    Return _Si
                End Get
                Set(ByVal value As Boolean)
                    _Si = value
                End Set
            End Property
    
            Private _No As Boolean
            Public Property No() As Boolean
                Get
                    Return _No
                End Get
                Set(ByVal value As Boolean)
                    _No = value
                End Set
            End Property
            Private _Grupo As String
            Public Property Grupo() As String
                Get
                    Return _Grupo
                End Get
                Set(ByVal value As String)
                    _Grupo = value
                End Set
            End Property
    
        End Class


    Y todo funciono correctamente.

    Probablemente el error que tienes es porque algun tipo de dato (probablemente Si o No) no son del tipo boolean, y no se pueda convertir a boolean.

    Revisa que regresan los campos Si y No, deben regresar un True o False.

    Puedes tambien intentar con algo como:

    <%# cbool(Eval("Si"))%>

    para ver si se corrige.

    Saludos.

    viernes, 26 de junio de 2015 19:12
  • Si ya lo hice con un gridview luego subo un post 

    Marilú

    viernes, 26 de junio de 2015 19:34