how to put NESTED GRIDVIEW with CollapseExpand





Default.aspx

<script type="text/javascript">
    function collapseExpand(divname) {
        var div = document.getElementById(divname);
        var img = document.getElementById('img' + divname);


        if (div.style.display == "none") {
            div.style.display = "inline";
            img.src = "minus.gif";
            img.alt = "hide";
           



           
        }
        else {
            div.style.display = "none";
            img.src = "plus.gif";
            img.alt = "show";
           
        }
    }
</script>





<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"                    GridLines="None"
            BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"     BorderWidth="1px"
            CellPadding="3" CellSpacing="2" onrowdatabound="GridView1_RowDataBound" ShowFooter="True"
            AllowPaging="True" onpageindexchanging="GridView1_PageIndexChanging"
            PageSize="2" >
            <PagerSettings FirstPageText="First" />
            <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
        <Columns>
       
         <asp:TemplateField ItemStyle-Width="20px">
        <ItemTemplate>
       
        <a href="JavaScript:collapseExpand('div<%# Eval("id") %>');">
        <img src="plus.gif" alt="show" id="imgdiv<%# Eval("id") %>" width="9px" border="0"    />
        </a>
        </ItemTemplate>

<ItemStyle Width="20px"></ItemStyle>
        </asp:TemplateField>
       
        <asp:TemplateField>
        <ItemTemplate>
            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("id") %>' />
       </ItemTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField HeaderText="Name">
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server" style="text-transform:capitalize" Text='<%#Eval("name") %>'></asp:Label>
        </ItemTemplate>
           <FooterTemplate>
            <asp:Label ID="Label5" runat="server" Text="TOTAL ="></asp:Label>
        </FooterTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField HeaderText="Description">
        <ItemTemplate>
            <asp:Label ID="Label2" runat="server" Text='<%#Eval("description") %>'></asp:Label>
        </ItemTemplate>
       <FooterTemplate>
            <asp:Label ID="lbltot" runat="server"></asp:Label>
        </FooterTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField HeaderText="Grand Total">
        <ItemTemplate>
            <asp:Label ID="Label3" runat="server" Text='<%#Eval("total") %>'></asp:Label>
        </ItemTemplate>
      <FooterTemplate>
            <asp:Label ID="Label9" runat="server" Text="GrandTotal ="></asp:Label>
        </FooterTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField HeaderText="Edit/Delete">
        <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" OnClick="editDetail" >Edit</asp:LinkButton>
            <asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">Delete</asp:LinkButton>
        </ItemTemplate>
        <FooterTemplate>
        <asp:Label ID="lblgt" runat="server"></asp:Label>
        </FooterTemplate>
        </asp:TemplateField>
       
        <%--child grid--%>
       
         <asp:TemplateField>
            <ItemTemplate>
            <tr>
            <td colspan="100%">
            <div id="div<%# Eval("id") %>" style="display:none; position: relative; left: 70px;">
            <asp:GridView ID="gvChildGrid" runat="server" AutoGenerateColumns="false" Width="250px" HeaderStyle-BackColor="Chocolate" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" PagerStyle-HorizontalAlign="Center" PagerStyle-VerticalAlign="Middle" RowStyle-HorizontalAlign="Center" RowStyle-VerticalAlign="Middle">
            <Columns>
            <asp:TemplateField HeaderText="Quantity">
            <ItemTemplate>
                <asp:Label ID="lblqty" runat="server" Text='<%#Eval("quantity")
%>'>       </asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Rate">
            <ItemTemplate>
                <asp:Label ID="lblrate" runat="server" Text='<%#Eval("rate") %>'></asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
            </Columns>
            </asp:GridView>
            </div>
            </td>
            </tr>
            </ItemTemplate>
            </asp:TemplateField>
       
        <%--child grid over--%>
       
        </Columns>
            <FooterStyle BackColor="#A55129" ForeColor="White" Font-Bold="True" />
            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
        </asp:GridView>



Default.aspx.CS

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            con.Open();
            GridView gv = (GridView)e.Row.FindControl("gvChildGrid");
            HiddenField id = (HiddenField)e.Row.FindControl("HiddenField1");
            SqlDataAdapter da = new SqlDataAdapter("select quantity,rate from v_rate2  where          pid="     +
id.Value, cn);
             DataTable dt = new DataTable();
            da.Fill(dt);
            con.Close();
            gv.DataSource = dt;
            gv.DataBind();

       }
}