Click here to Skip to main content
15,888,271 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi guys, I have a gridview inside its a checkbox. Also has column Amount. Now I want when user checked checkbox then Amount value should show in below textbox. If user check more than one row then all amount sum should be show in amount textbox.

Like if user select gridview first row & its amount value is 300. then below textbox show 300. Or if user checked 2 row & both have amount 300, 400 then textbox will show sum of both 700.

I'm trying JQuery code but not have much idea. This is what m trying.

JavaScript
<script type="text/javascript">
       function GetSelectedCasePartyAmount() {
           var counter = 0;
           $("#<%=gvDepositOrderDetail.ClientID%> input[id*='chkBoxGrdParty']:checkbox").each(function (index) {
           if ($(this).is(':checked'))
               counter++;
       });
       alert(counter);
   }
   </script>


this is my Gridview & textbox :
ASP.NET
<asp:GridView ID="gvDepositOrderDetail" runat="server" CssClass="table table-hover table-striped table-bordered"
                        AutoGenerateColumns="false" ShowHeaderWhenEmpty="True" AllowPaging="true"
                        PagerStyle-CssClass="paging" PageSize="10" OnRowDataBound="gvDepositOrderDetail_RowDataBound">
                        <PagerStyle CssClass="gridviewPager" />
                        <RowStyle CssClass="" />
                        <AlternatingRowStyle CssClass="active" />
                        <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkBoxGrdParty" runat="server" Checked="false" />
                                    <asp:HiddenField ID="hdnDepositOrderId" runat="server" />
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$Resources:ORDER_NO %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblOrderNo" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$ Resources:CASE_PARTY_NAME %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblCasePartyName" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center small-column" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$ Resources:AMOUNT %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblAmount" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$ Resources:DEPOSIT_TYPE %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblDeopsitType" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$ Resources:DEPOSIT_SOURCE %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblDepositSource" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="<%$ Resources:DECISION_DATE %>">
                                <ItemTemplate>
                                    <asp:Label ID="lblDecisionDate" runat="server"></asp:Label>
                                </ItemTemplate>
                                <HeaderStyle CssClass="text-center" />
                                <ItemStyle CssClass="text-center" />
                            </asp:TemplateField>

                            <%--       <asp:TemplateField>
                        <ItemTemplate>
                            <asp:LinkButton ID="lnkBtnViewDetail" CausesValidation="false" CommandName="ViewDetail" CssClass="btn btn-primary btn-sm"
                                runat="server"></asp:LinkButton>
                        </ItemTemplate>
                        <HeaderStyle CssClass="text-center" />
                        <ItemStyle CssClass="text-center" />
                    </asp:TemplateField>--%>
                        </Columns>
                        <EmptyDataTemplate>
                            <asp:Literal ID="ltrlEmptyData" runat="server" Text="<%$ Resources:Common,EMPTY_DATA_GRID%>"></asp:Literal>
                        </EmptyDataTemplate>
                    </asp:GridView>
<asp:Textbox ID="txtAmount" runat="server" >
                            </asp:Textbox >


Any suggestion really appreciated!
Posted
Comments
What is happening with this code? Have you debugged?
Mas11 5-Jun-14 2:40am    
Yes its not responce.
What response?

Hi Mas11,

Considering your Amount field is 5th in grid,
<script type="text/javascript">
$(document).ready(function () {
var sum = 0;
$("#<%=gvDepositOrderDetail.ClientID %> input:checkbox[id*=chkBoxGrdParty]").click(function () {
var amt = $(this).closest('tr').find('td:eq(5)').text();
sum += parseFloat(amt);
});
$(alert(sum));
});
</script></script>


You can use this code. I have done half of your coding part. you need to do more validations here. take this as a reference and build your code.

Good Luck.
 
Share this answer
 
Guys I did this :

JQuery Code :

JavaScript
function gvDepositOrderDetail_OnRowChecked(checkBoxElement, newAmount, targetElement)
        {
            var amountElement = $find(targetElement);
            var amount = amountElement.get_value() == ''? 0 : amountElement.get_value() - 0;
            if (isNaN(amount)) {
                amount = 0;
            }
            if (checkBoxElement.checked == false)
            {
                newAmount = newAmount * -1;
            }
            amount = amount + newAmount;
            amountElement.set_value(amount) ;
        }


from Code behind :
C#
chk.Attributes.Add("onclick", string.Format("javascript:gvDepositOrderDetail_OnRowChecked(this,{0},'{1}');", lblAmount.Text, txtAmount.ClientID));
 
Share this answer
 
Comments
Kornfeld Eliyahu Peter 8-Jun-14 7:35am    
And where jQuery in this? It's a very non-jQuery way to attach event handler on every checkbox...
You may want to read here - http://www.codeproject.com/Articles/775111/Understanding-ASP-NET-Templates

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900