SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: pisamagu en Jueves 14 de Mayo de 2009, 10:48
-
Hola a todos.
Estoy haciendo la intranet de una federacion y cuando el usuario quiere añadir una empresa nueva rellena un formulario donde hay un checkboxlist y marca los distintos sectores de actividad con los que esta relacionado esa empresa.
Hay una parte donde puede modificar esos datos o visualizarlos, entonces me conecto a la base de datos y los formularios se completan con la informacion que hay en la base.
Lo que quiero es que se marquen las opciones que el usuario marco la primera vez visualizarlos y si los quiere modificar o añadir nuevos que no las tenga que marcar de nuevo.
Cuando inserto los datos por primera vez en la base de datos ingresa los valores separados por puntos y comas, pero cuando quiero recuperarlos no se como hacerlo en el checkboxlist.
Bueno espero que puedan ayudarme.
Muchas Gracias
-
hola
Dim a As String = "0;2" 'aqui pones el valor que obtienes de la base de datos , en este ejemplo se supone q obtienes de la BDD los indices que selecciono cuando guardaste en la BDD
Dim opciones As String() = a.Split(";")
For i As Integer = 0 To opciones.Length - 1
Me.CheckBoxList1.Items(opciones(i)).Selected = True
Next
saludos
-
Hola!
Muchas gracias por contestar,lo probare el lunes y ya te cuento si me funciona.
Gracias,saludos
-
Hola!
perdona es q soy un poco torpe y esto no me funciona xq no selecciona las casillas ya marcadas.mi codigo es:
.vb
Protected Sub checksecteur_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles checksecteur.SelectedIndexChanged
Dim i As Integer
Dim a As String
a = chainecheck.Text
Dim opciones As String() = a.Split(";")
For i = 0 To opciones.Length - 1
Me.checksecteur.Items(opciones(i)).Selected = True
Next i
End Sub
.aspx
<asp:ControlParameter ControlID="chainecheck" Name="secteuractivite" PropertyName="Text" Type="String" />
secteuractivite es la variable de la base de datos donde esta la informacion.
<asp:CheckBoxList ID="checksecteur" runat="server" RepeatColumns="2" AutoPostBack="True" Height="146px" Width="494px">
<asp:ListItem>Agroalimentaire</asp:ListItem>
....
</asp:CheckBoxList>
Tengo que poner algo mas o quitar algo?
Muchas gracias
-
HOla,OK,ya me funciona pero ahora quiero meter el checkboslist dentro de un formview.
Sabeis como?? porque cuando lo inserto dentro no funciona.
Muchas gracias
-
Hola!! x fin funciona todo, no me lo creo, bueno pongo el codigo x si acaso alguien necesita algo parecido:
Este es para mostrar los datos:
Protected Sub checksecteur1_onload(ByVal sender As Object, ByVal e As System.EventArgs)
Dim checksecteur As CheckBoxList = FormView1.FindControl("checksecteur1")
Dim i, j As Integer
Dim a As String
Dim chainecheck1 As DataView = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
a = chainecheck1(0)("secteuractivite")
Dim opciones() As String = a.Split(";")
For i = 0 To opciones.Length - 1
For j = 0 To checksecteur.Items.Count - 1
If checksecteur.Items(j).Text = opciones(i) Then
checksecteur.Items(j).Selected = True
End If
Next j
Next i
End Sub
Para editarlos:
Protected Sub checksecteur2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim checksecteur As CheckBoxList = FormView1.FindControl("checksecteur2")
Dim chainecheck As Label = FormView1.FindControl("chainecheck")
chainecheck.Text = ""
Dim i As Integer
For i = 0 To checksecteur.Items.Count - 1
If checksecteur.Items(i).Selected = True And chainecheck.Text <> "" Then
chainecheck.Text = chainecheck.Text & ";" & checksecteur.Items(i).Text
ElseIf checksecteur.Items(i).Selected = True And chainecheck.Text = "" Then
chainecheck.Text = checksecteur.Items(i).Text
End If
Next i
End Sub
Gracias x vuestra ayuda
-
disculpa x no haberte contestado, acabo de ver tus mensajes
me alegro q hayas encontrado la solución
saludos