i Used ajax for selection of parent child checkbox.
<asp:ScriptManager ID="scriptManager" runat="server" />
<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional">
<contenttemplate>
<asp:DataList ID="DataList1" runat="server"
Width="100%" ItemStyle-VerticalAlign="Top" RepeatDirection="Horizontal" RepeatColumns="4">
<ItemTemplate>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td colspan="2">
<asp:CheckBox runat="server" AutoPostBack="true" Font-Bold="true" ID="chkMainCat"
Text='<%#DataBinder.Eval(Container.DataItem, "CName")%>' OnCheckedChanged="HandleChk" />
</td>
</tr>
<tr>
<td style="width:2pt">
</td>
<td>
<asp:CheckBoxList Font-Size="7pt" runat="server" ID="chkSubCat">
</asp:CheckBoxList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
Protected Sub HandleChk(ByVal sender As Object, ByVal e As EventArgs)
Dim chkMainCat As CheckBox = TryCast(sender, CheckBox)
Dim row As DataListItem = DirectCast(chkMainCat.NamingContainer, DataListItem) Dim GridView1 As GridView = FindControl("GridView1")
Dim I As Integer
For I = 0 To DataList1.Items.Count - 1
If I = Val(row.ItemIndex) Then
Dim chkMCat As CheckBox = DataList1.Items(I).FindControl("chkMainCat") Dim chkSubCat As CheckBoxList = DataList1.Items(I).FindControl("chkSubCat")
Dim J As Integer
For J = 0 To chkSubCat.Items.Count - 1
If chkMCat.Checked = True Then
chkSubCat.Items(J).Selected = True
Else
chkSubCat.Items(J).Selected = False
End If
Next
End If
Next
End Sub