Jump to content

[Asp.net 2.0] CheckBoxLists


freaklori
 Share

Recommended Posts

Boas, estou com uma pequena grande duvida.. é o seguinte...

Eu estou adicionar dinamicamente varias checklistbox ao webform conforme foi seleccionado anteriormente...

o problema é que eu quero associar um evento CHECKED a essas mesmas checkboxs... isto tudo em runtime...

Ja ouvi falar em Raise Events,Add Handlers.. alguem me pode ajudar??

Cumps

FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Link to comment
Share on other sites

Olá,

Podes adicionar o evento através do AddHandler.

Exemplo:

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim cb1 As New CheckBox
        With cb1
            .Text = "Check1"
            .AutoPostBack = True
        End With


        Dim cb2 As New CheckBox
        With cb2
            .Text = "Check2"
            .AutoPostBack = True
        End With

        AddHandler cb1.CheckedChanged, AddressOf cbCheckedChanged
        AddHandler cb2.CheckedChanged, AddressOf cbCheckedChanged

        Panel1.Controls.Add(cb1)
        Panel1.Controls.Add(cb2)

    End Sub

    Sub cbCheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim cb As CheckBox = DirectCast(sender, CheckBox)
        Response.Write(String.Format("CheckBox: {0}, Estado: {1}", cb.Text, cb.Checked))
    End Sub

End Class
Link to comment
Share on other sites

Nao funciona...


    Protected Sub bCarregarLabs_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bCarregarLabs.Click

  'Criar um Check List Com os Labs
            Dim C As New CheckBoxList
            'C.ID = P.ID & "CL" & i
            C.AutoPostBack = True
            AddHandler C.SelectedIndexChanged, AddressOf IndexChange
End Sub
    Private Sub IndexChange(ByVal sender As Object, ByVal e As System.EventArgs)
Msgbox("OLA")
    End Sub

FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Link to comment
Share on other sites

Nao funciona...

Mas tu não está a interir o teu controlo (que criaste) na página. Já tens a CheckBoxList na página, é isso ?

É que dinamicamente funciona bem:

Partial Class _Default
    Inherits System.Web.UI.Page

    Private c As CheckBoxList

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim item1 As New ListItem("aaa")
        Dim item2 As New ListItem("bbb")
        Dim item3 As New ListItem("ccc")
        Dim item4 As New ListItem("ddd")

        c = New CheckBoxList
        c.Items.AddRange(New ListItem() {item1, item2, item3, item4})
        c.AutoPostBack = True

        AddHandler c.SelectedIndexChanged, AddressOf IndexChanged
        Panel1.Controls.Add(c)

    End Sub

    Sub IndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        For Each item As ListItem In Me.c.Items
            If item.Selected Then
                Response.Write(item.Text.ToString & "<br/>")
            End If
        Next

    End Sub

End Class

Se já tiveres a CheckBoxList ná página é só ires ao evento SelectedIndexChanged e usares o código que precisas. Só tens de colocar o AutoPostBack  = True.

PS: Desculpa mas não li bem e pensei que era CheckBox e não CheckBoxList  🙂

Link to comment
Share on other sites

Estou a usar Checkboxlist


Protected Sub bCarregarLabs_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bCarregarLabs.Click
        For i As Integer = 1 To 4

                      'Criar um Check List Com os Labs
            Dim C As New CheckBoxList
            C.ID = P.ID & "CL" & i
            C.AutoPostBack = True
            'C.Attributes.Add("OnSelectedIndexChanged", "Check")
Carregar_CheckList(C, "SELECT Designacao, CodEmpresa FROM Empresas ORDER BY Designacao", "Designacao", "CodEmpresa")
            AddHandler C.SelectedIndexChanged, AddressOf ItemChecadoAlterado

           

            'Adicionar ao Panel 
            P.Controls.Add(C)
            'Adicionar ao PlaceHolderLabs
            ConteudoLabs.Controls.Add(P)

        Next

    End Sub

FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Link to comment
Share on other sites

Nao...

O q ue pretendo é quando clico numa determinado valor da Checklistbox... ele me crie outra checklistbox mas com a informaçao limitada aquela escolha da checklistbox anterior...

Ou seja.. um exemplo

Tenho 2 CheckLisbox

[C1]

[C2]

Clico na um item da checklistbox do [C1]

e iremos ter

[C1] [C11]

[C2]

A [C11] Foi carregada apartir de um criterio seleccionado na [C1]

O problema aqui é que a [C1], [C2]... ate podem ser 10 sao carregadas atraves de uma droplist que diz... quero 1,2,4,5,6, Checklistbox

O objectivo final será

[DL] -> Quando Seleccionada uma Opçao Crias as CheckListbox

--------------

[C1][C11]

..

..

...

[C20][C21]

Quando Checo de uma das CheckListbOxs do lado esquerdo.. ira ser carregada uma outra Checklistbox ao lado com a informação

seleccionada da Checklistbox do lado esquerdo

Percebeste? Sei que é confuso...

FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.