Solved

Nested gridview select All

Posted on 2009-07-06
3
758 Views
Last Modified: 2012-06-27
I have a gridview within a gridview.

I want to be able once selecting the inner gridview to select all the items via a checkbox in the header template.

I was using http://www.aspboy.com/Categories/GridArticles/Hierarchical_GridView_With_Clickable_Rows.aspx asa a basis for my code.

Iv'e tried the following code to see if i could figure it out but it does not recognise my cbAll (the checkbox in the headertemplate of the child gridview)
Protected Sub cbAll_CheckChanged(ByVal s As Object, ByVal e As EventArgs)
        Dim blnChecked As Boolean = False
 
 
        For Each gvRow As GridViewRow In gvParent.Rows
            '// get the checkboxed items for the assets
            Dim gvChildAsset As GridView = (DirectCast(gvRow.FindControl("gvChildAssets"), GridView))
            '// for each of the rows in the child task gridview
            ' For Each dc System.web.DataControlField in gvchildasset.columns
            For Each dc As DataControlField In gvChildAsset.Columns
                If TypeOf dc Is TemplateField Then
                    Dim cbAll As CheckBox = (DirectCast(gvChildAsset.FindControl("cbAll"), CheckBox))
                    If isNull(cbAll) Then Continue For
                    If cbAll.Checked Then
                        blnChecked = True
                        Exit For
                    End If
                End If
            Next
 
            For Each gvChildAssetRow As GridViewRow In gvChildAsset.Rows
                Dim cb As CheckBox = (DirectCast(gvChildAssetRow.FindControl("cb"), CheckBox))
                If isNull(cb) Then Continue For
                If blnChecked Then
                    cb.Checked = True
                End If
            Next
        Next
    End Sub

Open in new window

0
Comment
Question by:ddl_ex5
  • 2
3 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24794043
It looks like you are calling FindControl from the GridView, but you need to call it from the GridViewRow.

GridViewRow line:

     Dim gvChildAsset As GridView = (DirectCast(gvRow.FindControl("gvChildAssets"), GridView))
 
GridView line:

     Dim cbAll As CheckBox = (DirectCast(gvChildAsset.FindControl("cbAll"), CheckBox))

The second line needs to be more like the first line.
 
0
 

Author Comment

by:ddl_ex5
ID: 24803342
Putting
Dim cbAll As CheckBox = (DirectCast(gvChildAsset.FindControl("cbAll"), CheckBox)) into a for each loop for the childAsset row does not work.  This was my first attempt before i got the checkbox of cbAll to be located.

0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 24803445
I guess that I didn't make myself clear enough.  You need to use FindControl with a row from gvChildAsset, not the GridView itself.

Example:
    Dim cbAll As CheckBox = TryCast(gvChildAsset.Rows(0).FindControl("cbAll"), CheckBox)
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

828 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