Solved

Checkboxlist  Select All checkbox

Posted on 2009-07-02
5
685 Views
Last Modified: 2012-05-07
I have a checkboxlist and want a select all checkbox. The way I want it to work is that if they hit select all it checks all the boxes. The problem I am running into is that if they have 'item1' checked and you click "select all". I cant tell that select all is checked because in the selectedindexchanged event it is still showing me a value of item1.

How can I get this to work right? I basically want Select all to check all the boxes and if they have select all checked and uncheck any checkbox it unchecks select all.
<body>

    <form id="form1" runat="server">

    <div>

        <asp:ScriptManager ID="ScriptManager1" runat="server">

        </asp:ScriptManager>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">

        <ContentTemplate>
 

        <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="2" AutoPostBack="true">

            <asp:ListItem>item1</asp:ListItem>

            <asp:ListItem>Item2</asp:ListItem>

            <asp:ListItem>Item3</asp:ListItem>

            <asp:ListItem>Item4</asp:ListItem>

            <asp:ListItem>Item5</asp:ListItem>

            <asp:ListItem>Select All</asp:ListItem>

        </asp:CheckBoxList>

        

        </ContentTemplate>

        </asp:UpdatePanel>

    </div>

    </form>

</body>

Open in new window

0
Comment
Question by:bertino12
  • 2
  • 2
5 Comments
 
LVL 3

Expert Comment

by:mpeaden2
ID: 24765246
Use a for loop... checking for all controls that are checkboxes. If you have some you don't want checked, then use a groupbox as a container for the checkboxes... now you will use two nested for loops.
Dim ctl As Object

      

        For Each ctl In Lookup.Controls

            if ctl is checkbox then

            'yourCheckbox.checked = true

        Next

Open in new window

0
 
LVL 41

Accepted Solution

by:
guru_sami earned 500 total points
ID: 24765271
Try this:
Protected Sub CheckBoxList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    If CheckBoxList1.Items(5).Selected = True Then
        For Each item As ListItem In CheckBoxList1.Items
            item.Selected = True
        Next
    End If
End Sub

This code has its own limitations .eg. Items(5) ..here this index 5 may change depending on the number of checkboxes. But it should give you an idea where to head.
0
 

Author Comment

by:bertino12
ID: 24766208
Could it be done through javascript?

Can I wire a javascript function to the  checkboxlist items so that when they are clicked it fires a javascript function that if false unchecks the "All" option and if true checks all the checkboxes?

How could I do this?
0
 
LVL 41

Expert Comment

by:guru_sami
ID: 24766411
May be you can try Adding onchange attribute to CBL OnPageLoad. Not sure how would that go...but because using a single checkbox to Select ALL and Deselect ALL would create a problem.
Say someone wants to select just one checkbox...at that time SelectAll will not be selected ..that will make delect all implied if using a singel Checkbox.

Check using two buttons like this: http://www.dotnetcurry.com/ShowArticle.aspx?ID=77
0
 

Author Comment

by:bertino12
ID: 24766996
I ended up doing it in javascript:


    Private Sub addAttributes()

        Me.cbLaws.Items(11).Attributes.Add("style", "color: red")

        For i As Integer = 0 To 11

            If i = 11 Then

                Me.cbLaws.Items(i).Attributes.Add("onclick", "javascript:Select(true)")

            Else

                Me.cbLaws.Items(i).Attributes.Add("onclick", "javascript:Select(false)")

            End If

        Next

    End Sub
 
 

<script language="javascript"  type="text/javascript"> 

function Select(flag){

    if(flag==true) {  

        if(document.getElementById("ctl00_PageBody_cbLaws_11").checked == true) {

            var i=0;

            for (i=0;i<=11;i++)

            {

                document.getElementById("ctl00_PageBody_cbLaws_" + i).checked = true;

            }       

        }

        if(document.getElementById("ctl00_PageBody_cbLaws_11").checked == false) {

            var i=0;

            for (i=0;i<=11;i++)

            {

                document.getElementById("ctl00_PageBody_cbLaws_" + i).checked = false;

            }       

        }

    } 

    if(flag==false)

    {

        document.getElementById("ctl00_PageBody_cbLaws_11").checked = false;

    }

}

</script>

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now