Calculate the Sum or Total of GridView Rows in ASP.NET using jQuery or Javascript

Introduction


This post shows how to calculate the sum of gridview rows in ASP.NET using jQuery or Javascript. All the textboxes are mandatory and only allow numbers.


Code
  1. <script type="text/javascript">    
  2. $(document).ready(function () {    
  3.     
  4. $('.numberonly').keypress(function (e) {    
  5.     
  6. var charCode = (e.which) ? e.which : event.keyCode    
  7.     
  8. if (String.fromCharCode(charCode).match(/[^0-9]/g))    
  9.     
  10. return false;    
  11.     
  12. });    
  13.     
  14. });    
  15.     
  16. function sumBudgetedValues(ctrl) {    
  17.     
  18. var row = $(ctrl).closest('tr')[0];    
  19.     
  20. var strbudgetedval = row.cells[14].childNodes[1];    
  21.     
  22. var totalsum = 0;    
  23.     
  24. for (var i = 2; i < 14; i++) {    
  25.     
  26. totalsum += row.cells[i].childNodes[1].value == "" ? 0 : parseFloat(row.cells[i].childNodes[1].value);    
  27.     
  28. }    
  29.     
  30. var strname = '[name="' + strbudgetedval.name + '"]';    
  31.     
  32. $(strname).val(totalsum);    
  33.     
  34. }    
  35.     
  36. function Validation() {    
  37.     
  38. //validation for FIRM    
  39.     
  40. var isValid = true;    
  41.     
  42. var classname = 'mandatory';    
  43.     
  44. $('.' + classname + '').each(function (i, obj) {    
  45.     
  46. if (obj.value == '') {    
  47.     
  48. isValid = false;    
  49.     
  50. return isValid;    
  51.     
  52. }    
  53.     
  54. });    
  55.     
  56.     
  57.     
  58. if (!isValid) {    
  59.     
  60. $('.' + classname + '').each(function (i, obj) {    
  61.     
  62. if (obj.value == '') {    
  63.     
  64. obj.style.border = '1px solid red';    
  65.     
  66. }    
  67.     
  68. else {    
  69.     
  70. obj.style.border = '1px solid black';    
  71.     
  72. }    
  73.     
  74. });    
  75.     
  76. alert('Please fill mandatory details');    
  77.     
  78. }    
  79.     
  80. if (isValid) {    
  81.     
  82. return confirm('Are you sure you want to save information? Once information stored will not be updated.')    
  83.     
  84. }    
  85.     
  86.     
  87. return isValid;    
  88.     
  89. }    
  90.     
  91. </script>    
  92. <asp:GridView ID="gvdashboard" ClientIDMode="Static" runat="server" ShowHeaderWhenEmpty="true" EmptyDataText="No records found" EmptyDataRowStyle-ForeColor="Red"    
  93.     
  94. EmptyDataRowStyle-HorizontalAlign="Center" AllowPaging="True"    
  95.     
  96. AutoGenerateColumns="False" GridLines="Vertical" HeaderStyle-Wrap="false" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px">    
  97.     
  98. <AlternatingRowStyle BackColor="#DCDCDC" />    
  99.     
  100.     
  101. <Columns>    
  102.     
  103. <asp:BoundField DataField="ID" HeaderText="ID" ControlStyle-CssClass="hidectrl" ItemStyle-CssClass="hidectrl" HeaderStyle-CssClass="hidectrl"></asp:BoundField>    
  104.     
  105. <asp:BoundField DataField="Month" HeaderText="Month" ItemStyle-Width="5px"></asp:BoundField>    
  106.     
  107. <asp:TemplateField HeaderText="Jan">    
  108.     
  109. <ItemTemplate>    
  110.     
  111. <asp:TextBox ID="txtjan" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  112.     
  113. </ItemTemplate>    
  114.     
  115. </asp:TemplateField>    
  116.     
  117. <asp:TemplateField HeaderText="Feb">    
  118.     
  119. <ItemTemplate>    
  120.     
  121. <asp:TextBox ID="txtfeb" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  122.     
  123. </ItemTemplate>    
  124.     
  125. </asp:TemplateField>    
  126.     
  127. <asp:TemplateField HeaderText="Mar">    
  128.     
  129. <ItemTemplate>    
  130.     
  131. <asp:TextBox ID="txtmar" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  132.     
  133. </ItemTemplate>    
  134.     
  135. </asp:TemplateField>    
  136.     
  137. <asp:TemplateField HeaderText="Apr">    
  138.     
  139. <ItemTemplate>    
  140.     
  141. <asp:TextBox ID="txtapr" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  142.     
  143. </ItemTemplate>    
  144.     
  145. </asp:TemplateField>    
  146.     
  147. <asp:TemplateField HeaderText="May">    
  148.     
  149. <ItemTemplate>    
  150.     
  151. <asp:TextBox ID="txtmay" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  152.     
  153. </ItemTemplate>    
  154.     
  155. </asp:TemplateField>    
  156.     
  157. <asp:TemplateField HeaderText="Jun">    
  158.     
  159. <ItemTemplate>    
  160.     
  161. <asp:TextBox ID="txtjun" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  162.     
  163. </ItemTemplate>    
  164.     
  165. </asp:TemplateField>    
  166.     
  167. <asp:TemplateField HeaderText="Jul">    
  168.     
  169. <ItemTemplate>    
  170.     
  171. <asp:TextBox ID="txtjul" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  172.     
  173. </ItemTemplate>    
  174.     
  175. </asp:TemplateField>    
  176.     
  177. <asp:TemplateField HeaderText="Aug">    
  178.     
  179. <ItemTemplate>    
  180.     
  181. <asp:TextBox ID="txtaug" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  182.     
  183. </ItemTemplate>    
  184.     
  185. </asp:TemplateField>    
  186.     
  187. <asp:TemplateField HeaderText="Sep">    
  188.     
  189. <ItemTemplate>    
  190.     
  191. <asp:TextBox ID="txtsep" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  192.     
  193. </ItemTemplate>    
  194.     
  195. </asp:TemplateField>    
  196.     
  197. <asp:TemplateField HeaderText="Oct">    
  198.     
  199. <ItemTemplate>    
  200.     
  201. <asp:TextBox ID="txtoct" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  202.     
  203. </ItemTemplate>    
  204.     
  205. </asp:TemplateField>    
  206.     
  207. <asp:TemplateField HeaderText="Nov">    
  208.     
  209. <ItemTemplate>    
  210.     
  211. <asp:TextBox ID="txtnov" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  212.     
  213. </ItemTemplate>    
  214.     
  215. </asp:TemplateField>    
  216.     
  217. <asp:TemplateField HeaderText="Dec">    
  218.     
  219. <ItemTemplate>    
  220.     
  221. <asp:TextBox ID="txtdec" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>    
  222.     
  223. </ItemTemplate>    
  224.     
  225. </asp:TemplateField>    
  226.     
  227. <asp:TemplateField HeaderText="Total">    
  228.     
  229. <ItemTemplate>    
  230.     
  231. <asp:TextBox ID="txttotal" runat="server" CssClass="form-control nopadding" ReadOnly="true"></asp:TextBox>    
  232.     
  233. </ItemTemplate>    
  234.     
  235. </asp:TemplateField>    
  236.     
  237. </Columns>    
  238.     
  239. <EditRowStyle BackColor="#2461BF" />    
  240.     
  241. <FooterStyle BackColor="#507CD1" ForeColor="White" Font-Bold="True" />    
  242.     
  243. <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />    
  244.     
  245. <PagerStyle CssClass="pagination-ys" />    
  246.     
  247. <RowStyle BackColor="#EFF3FB" />    
  248.     
  249. <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />    
  250.     
  251. <SortedAscendingCellStyle BackColor="#F5F7FB" />    
  252.     
  253. <SortedAscendingHeaderStyle BackColor="#6D95E1" />    
  254.     
  255. <SortedDescendingCellStyle BackColor="#E9EBEF" />    
  256.     
  257. <SortedDescendingHeaderStyle BackColor="#4870BE" />    
  258.     
  259. </asp:GridView>    
  260.     
  261.     
  262. <asp:Button ID="btnsubmit" CssClass="btn-lg btn-primary" OnClientClick="return Validation();" runat="server" Text="Submit" OnClick="btnsubmit_Click" />    
  263.