Como marcar / desmarcar todas as caixas de seleção filho com base na caixa de seleção de cabeçalho da grade pai

Estou desenvolvendo um aplicativo da Web que consiste em DataGrid aninhado com outro DataGrid. Na Grade pai, tenho uma caixa de seleção no modelo de cabeçalho e na grade filho, outra caixa de seleção no modelo de item.

A funcionalidade é: 1.Se eu clicar na caixa de seleção pai, todos os itens da grade filho deverão ser verificados e vice-versa. 2. Tenho uma coluna de valor na grade filho, preciso que a soma do valor da linha marcada seja exibida na caixa de texto.

Para EG: na minha grade filho, tenho 3 colunas com o valor do campo de valor como 100.200.300. Se eu clicar em Chkheader (cabeçalho da grade pai), toda a grade filho deve ser selecionada e, na caixa de texto, deve aparecer como (100 + 200 + 300) 600. Se eu desmarcar manualmente a última linha na grade filho, na caixa de texto, ela deverá exibir como (100 + 200) 300.

aqui está o meu código:

<asp:DataGrid ID="dgcostOrigin" runat="server" BorderWidth="1px" BorderColor="#FE9B00">
 <Columns>
    <asp:TemplateColumn>
        <HeaderTemplate>                                                                        
        <asp:CheckBox ID="chkHeader" runat="server" />
        </HeaderTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <ItemTemplate>
        <asp:PlaceHolder ID="VoucherDetailsChargeId" runat="server" Visible="False">
            <asp:DataGrid ID="dg_VoucherChargeDetails" runat="server" DataSource='<%#GetCFSDetailsO( (String) DataBinder.Eval(Container.DataItem,           "Name") ) %>'>
            <Columns>
                <asp:BoundColumn DataField="ID" HeaderText="mFRL_NUPKId" Visible="False"></asp:BoundColumn>
                <asp:TemplateColumn>
                    <HeaderStyle Width="5%"></HeaderStyle>
                    <ItemTemplate>
                    <asp:CheckBox ID="CHKJobsOrigin" runat="server" >
                    </asp:CheckBox> 
                    </ItemTemplate>   
                </asp:TemplateColumn>
            </Columns>
            </asp:DataGrid> 
        </asp:PlaceHolder>
      </ItemTemplate>
      </asp:TemplateColumn>
  </Columns>
</asp:DataGrid>

aqui está o meu Javascript para calcular total ()

function CalculateTotalOriginCost(mcheckbox2) {
          var txtAmtOrg = mcheckbox2.id.replace("CHKJobsOrigin", "TXTCostOriginAmount");

            var AmountO = +(document.getElementById(txtAmtOrg).value + 0);

            var TotalAmountO = +(document.getElementById("TxtOriginCost").value + 0);

            if (mcheckbox2.checked == true) {
                TotalAmountO = TotalAmountO + AmountO;
            }
            else {
                TotalAmountO = TotalAmountO - AmountO;
            }
            document.getElementById("TxtOriginCost").value = TotalAmountO.toFixed(3);
            CalcYield();

         }

e aqui é para selecionar e desmarcar

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $("[id*=chkHeader]").live("click", function () {
        var chkHeader = $(this);
        var grid = $(this).closest("table");
        $("input[type=checkbox]", grid).each(function () {
            if (chkHeader.is(":checked")) {
                $(this).attr("checked", "checked");
                $("td", $(this).closest("tr")).addClass("selected");
            } else {
                $(this).removeAttr("checked");
                $("td", $(this).closest("tr")).removeClass("selected");
            }
        });
    });
    $("[id*=CHKJobsOrigin]").live("click", function () {
        var grid = $(this).closest("table");
        var chkHeader = $("[id*=chkHeader]", grid);
        if (!$(this).is(":checked")) {
            $("td", $(this).closest("tr")).removeClass("selected");
            chkHeader.removeAttr("checked");
        } else {
            $("td", $(this).closest("tr")).addClass("selected");
            if ($("[id*=CHKJobsOrigin]", grid).length == $("[id*=CHKJobsOrigin]:checked", grid).length) {
                chkHeader.attr("checked", "checked");
           var chkChild = $("[id*=CHKJobsOrigin]", grid);     
                 CalculateTotalOriginCost(chkChild); 
            }
        }

    });
</script>

Selecionar tudo e desmarcar tudo estão funcionando bem, mas não consigo exibir o total na caixa de texto. sem a função select all, se eu usar get total, ele estava funcionando. Como combinar a função. qualquer um pode me ajudar a resolver esse problema. Preciso da função javascript

questionAnswers(0)

yourAnswerToTheQuestion