I had this great help on this link below:
http://www.aspforums.net/Threads/167471/Enable-Disable-all-TextBox-controls-inside-GridView-using-single-CheckBox-in-ASPNet/
which forces users of our app to either fill the textboxes inside a gridview OR check the checkbox.
If box is not checked or textboxes are not filled within a gridview control, an alert is raised.
This works great from that link.
However, management decided to change the position where the checkboxes are placed. They want the checkboxes to be inside each gridview.
I was able to put the checkboxes inside each gridview and also was able to use oncheckedchanged event to validate one gridview inside the btnNext button click event. The problem is that I have several gridview controls.
Is it possible to adjust the code inside btnNext click event to accommodate the remaining checkboxes in the remaining gridview controls?
Below are two gridview controls and C# code of how I tried to use the validations for the two gridview controls.
gridview1 validation works but the second one does not work.
Thank you very much for all your help
   <table>
    <tr>
        <td>
          <asp:gridview ID="Gridview1" gridlines="None" runat="server" ShowFooter="true" AutoGenerateColumns="false" OnRowDeleting="Gridview1_RowDeleting">
            <Columns>
            <asp:BoundField DataField="RowNumber" Visible="false" HeaderText="Row Number" />
            <asp:TemplateField HeaderText="Name">
             <headerstyle horizontalalign="Left" />
                <ItemTemplate>
                    <asp:TextBox ID="txtsourcename" placeholder="Name...(e.g, Jane Doe)" runat="server" style="width:250px;" class="form-control textClass"></asp:TextBox><br />
                    <asp:CheckBox ID="grid1Details" ClientIDMode="Static" runat="server" Checked="false" AutoPostBack="true" OnCheckedChanged="Grid1CheckChanged" /><span style="color:#ff0000">*Check this box if N/A</span>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Address">
            <ItemStyle HorizontalAlign="Left"></ItemStyle>
                <ItemTemplate>
                    <asp:TextBox ID="txtsourceaddress" placeholder="Address..." runat="server" style="width:250px;" class="form-control textClass"></asp:TextBox><br /><br />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Income">
            <ItemStyle HorizontalAlign="Left"></ItemStyle>
                <ItemTemplate>
                     <asp:TextBox ID="txtsourceincome" placeholder="Income...(example: 1000)" runat="server" style="width:250px;" class="form-control txtsourceincome numeric textClass"></asp:TextBox><br /><br />
                </ItemTemplate>
                       </asp:TemplateField>
            <asp:TemplateField HeaderText="">
                <ItemTemplate>
                 <asp:Button ID="ButtonAdd" runat="server" Text="Add" 
                        onclick="ButtonAdd_Click" CssClass="grvAddButton" OnClientClick="return ValidateEmptyValue();return validate()" /><br /><br /><br>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="">
                <ItemTemplate>
                 <asp:Button ID="sourceDelete" runat="server" Text="Delete" CommandName="Delete"
                         CssClass="grvDelButton" OnClientClick="return confirm('are you sure?')"  /> <br /><br /><br />
                </ItemTemplate>
            </asp:TemplateField> 
<%--           <asp:CommandField ShowDeleteButton="True"><ControlStyle CssClass="grvDelButton" /></asp:CommandField>--%>
            </Columns>
          </asp:gridview>
        </td>
    </tr>
</table>
            <span style="font-weight:bold;font-size:18px;color:#000000;">2. Name and address of <em>Income</em> Sources of $1,000.00 greater of <em>Spouse</em>, if any: (No comma (,)  or period(.); Example 1000)</span><br /><br />        
   <table>
    <tr>
        <td>                     
            <asp:gridview ID="grvspouse" GridLines="None" runat="server" ShowFooter="true" AutoGenerateColumns="false" OnRowDeleting="grvspouse_RowDeleting">
            <Columns>
            <asp:BoundField DataField="SpouseNumber" Visible="false" HeaderText="Row Number" />
            <asp:TemplateField HeaderText="Name">
            <headerstyle horizontalalign="Left" />
                <ItemTemplate>
                    <asp:TextBox ID="txtspousename" placeholder="Name...(e.g, Jane Doe)" runat="server" style="width:250px;" class="form-control"></asp:TextBox><br />
                    <asp:CheckBox ID="spouseDetails" ClientIDMode="Static" runat="server" Checked="false" AutoPostBack="true" OnCheckedChanged="SpouseCheckChanged" /><span style="color:#ff0000">*Check this box if N/A</span>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Address">
            <ItemStyle HorizontalAlign="Left"></ItemStyle>
                <ItemTemplate>
                    <asp:TextBox ID="txtspouseaddress" placeholder="Address..." runat="server" style="width:250px;" class="form-control"></asp:TextBox><br /><br />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Income">
            <ItemStyle HorizontalAlign="Left"></ItemStyle>
                <ItemTemplate>
                     <asp:TextBox ID="txtspouseincome" placeholder="Income...(example: 1000)" runat="server" style="width:250px;" class="form-control txtsourceincome numeric"></asp:TextBox><br /><br />
                </ItemTemplate>
           </asp:TemplateField>
            <asp:TemplateField HeaderText="">
                <ItemTemplate>
                 <asp:Button ID="ButtonAdd2" runat="server" Text="Add" 
                        onclick="ButtonAdd2_Click" CssClass="grvAddButton" OnClientClick="return ValidateSPEmptyValue();" /><br /><br /><br />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="">
                <ItemTemplate>
                 <asp:Button ID="spouseDelete" runat="server" Text="Delete" CommandName="Delete"
                         CssClass="grvDelButton" OnClientClick="return confirm('are you sure?')"  /> <br /><br /><br />
                </ItemTemplate>
            </asp:TemplateField> 
<%--           <asp:CommandField ShowDeleteButton="True"><ControlStyle CssClass="grvDelButton" /></asp:CommandField>--%>
            </Columns>
          </asp:gridview>
        </td>
    </tr>
</table>
 
    Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim HITCOUNT As Integer = "0"
        If HITCOUNT = "0" Then
            For Each row As GridViewRow In Gridview1.Rows
                Dim namesource As TextBox = TryCast(row.FindControl("txtsourcename"), TextBox)
                Dim nmesource As String = namesource.Text
                Dim addresssource As TextBox = TryCast(row.FindControl("txtsourceaddress"), TextBox)
                Dim addrsource As String = addresssource.Text
                Dim incomesource As TextBox = TryCast(row.FindControl("txtsourceincome"), TextBox)
                Dim incmsource As String = incomesource.Text
                Dim ckb As CheckBox = TryCast(row.FindControl("grid1Details"), CheckBox)
                Dim checkb As Boolean = ckb.Checked
                If checkb = False AndAlso nmesource = "" AndAlso addrsource = "" AndAlso incmsource = "" Then
                    ClientScript.RegisterStartupScript([GetType](), "Confirm", "jAlert('Please enter values on all textboxes or check the checkbox next to each textbox!');", True)
                Else
                    myMultiView.ActiveViewIndex += 1
                    lblResult.Visible = True
                End If
            Next
            HITCOUNT = "1" 'adding an integer value of 1(you can add anything)
        End If
        If HITCOUNT = "1" Then
            For Each row As GridViewRow In grvspouse.Rows
                Dim namespouse As TextBox = TryCast(row.FindControl("txtspousename"), TextBox)
                Dim nmespouse As String = namespouse.Text
                Dim addressspouse As TextBox = TryCast(row.FindControl("txtspouseaddress"), TextBox)
                Dim addrspouse As String = addressspouse.Text
                Dim incomespouse As TextBox = TryCast(row.FindControl("txtspouseincome"), TextBox)
                Dim incmspouse As String = incomespouse.Text
                Dim ckb2 As CheckBox = TryCast(row.FindControl("spouseDetails"), CheckBox)
                Dim checkc As Boolean = ckb2.Checked
                If checkc = False AndAlso nmespouse = "" AndAlso addrspouse = "" AndAlso incmspouse = "" Then
                    ClientScript.RegisterStartupScript([GetType](), "Confirm", "jAlert('Please enter values on all textboxes or check the checkbox next to each textbox!');", True)
                ElseIf HITCOUNT = "1" Then
                    myMultiView.ActiveViewIndex += 1
                    lblResult.Visible = True
                End If
            Next
            HITCOUNT = "2"
        End If
    End Sub