Thanks melibrion. This gets me part of the way there.
I also need to be able to select groups. For instance, if I select “Produce” I want Apples, Oranges, Carrots and Celery to also be selected. And when I deselect any individual item within the list, the “Select All” should also be deselected (because now I don’t actually have them all selected.)
The difficulty here is not checking a checkbox and then have its children checked, because OnItemLoad runs through rows top to bottom, and you can flag a variable upon hitting a top-level checkbox to know that subsequent non-top-level checkboxes need to be checked until the next parent is hit. The hard part is checking/unchecking a parent checkbox. This would be easy if you could make OnItemLoad run backwards, but it doesn’t
Is there a reason you are using a repeater for this? It would be much easier if you just created sets of parents and children, each with a hidden v_checkedCount label that gets incremented/decremented when child checkboxes are checked. After incrementing, you can check if the count matches the number of child checkboxes and if so check the parent.
I’m certain this can be done with a repeater, but it would be very complex.
I apologize for a hasty response; I’m swamped right now. Hopefully you can reverse-engineer something useful out of it. You’re welcome to ask questions, if you’re OK with the possibility of waiting a day or two for a response.