We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Checkboxlist  Select All checkbox

bertino12
bertino12 asked
on
Medium Priority
751 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

Comment
Watch Question

Commented:
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

Top Expert 2013
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
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?
Top Expert 2013

Commented:
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

Author

Commented:
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

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.