Hi simflex,
Check this example. Now please take its reference and correct your code.
HTML
<table>
    <tr>
        <td>
            <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
                runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" />
                    <asp:TemplateField HeaderText="Name">
                        <ItemTemplate>
                            <asp:TextBox runat="server" ID="txtName" Text='<%# Eval("Name")%>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Country">
                        <ItemTemplate>
                            <asp:TextBox runat="server" ID="txtCountry" Text='<%# Eval("Country")%>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </td>
        <td>
            <asp:CheckBox ID="chkDetails" runat="server" Checked="true" AutoPostBack="true" OnCheckedChanged="CheckChanged" />
        </td>
    </tr>
</table>
CS
protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
                        new DataColumn("Name", typeof(string)),
                        new DataColumn("Country",typeof(string)) });
        dt.Rows.Add(1, "John Hammond", "United States");
        dt.Rows.Add(2, "Mudassar Khan", "India");
        dt.Rows.Add(3, "Suzanne Mathews", "France");
        dt.Rows.Add(4, "Robert Schidner", "Russia");
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}
protected void CheckChanged(object sender, EventArgs e)
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        TextBox name = row.FindControl("txtName") as TextBox;
        TextBox country = row.FindControl("txtCountry") as TextBox;
        if (!chkDetails.Checked)
        {
            name.Enabled = false;
            country.Enabled = false;
        }
        else
        {
            name.Enabled = true;
            country.Enabled = true;
        }
    }
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not Me.IsPostBack Then
        Dim dt As DataTable = New DataTable()
        dt.Columns.AddRange(New DataColumn(2) {New DataColumn("Id", GetType(Integer)), New DataColumn("Name", GetType(String)), New DataColumn("Country", GetType(String))})
        dt.Rows.Add(1, "John Hammond", "United States")
        dt.Rows.Add(2, "Mudassar Khan", "India")
        dt.Rows.Add(3, "Suzanne Mathews", "France")
        dt.Rows.Add(4, "Robert Schidner", "Russia")
        GridView1.DataSource = dt
        GridView1.DataBind()
    End If
End Sub
Protected Sub CheckChanged(ByVal sender As Object, ByVal e As EventArgs)
    For Each row As GridViewRow In GridView1.Rows
        Dim name As TextBox = TryCast(row.FindControl("txtName"), TextBox)
        Dim country As TextBox = TryCast(row.FindControl("txtCountry"), TextBox)
        If Not chkDetails.Checked Then
            name.Enabled = False
            country.Enabled = False
        Else
            name.Enabled = True
            country.Enabled = True
        End If
    Next
End Sub
Screenshot
