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. $('.numberonly').keypress(function (e) {
  4. var charCode = (e.which) ? e.which : event.keyCode
  5. if (String.fromCharCode(charCode).match(/[^0-9]/g))
  6. return false;
  7. });
  8. });
  9. function sumBudgetedValues(ctrl) {
  10. var row = $(ctrl).closest('tr')[0];
  11. var strbudgetedval = row.cells[14].childNodes[1];
  12. var totalsum = 0;
  13. for (var i = 2; i < 14; i++) {
  14. totalsum += row.cells[i].childNodes[1].value == "" ? 0 : parseFloat(row.cells[i].childNodes[1].value);
  15. }
  16. var strname = '[name="' + strbudgetedval.name + '"]';
  17. $(strname).val(totalsum);
  18. }
  19. function Validation() {
  20. //validation for FIRM
  21. var isValid = true;
  22. var classname = 'mandatory';
  23. $('.' + classname + '').each(function (i, obj) {
  24. if (obj.value == '') {
  25. isValid = false;
  26. return isValid;
  27. }
  28. });
  29. if (!isValid) {
  30. $('.' + classname + '').each(function (i, obj) {
  31. if (obj.value == '') {
  32. obj.style.border = '1px solid red';
  33. }
  34. else {
  35. obj.style.border = '1px solid black';
  36. }
  37. });
  38. alert('Please fill mandatory details');
  39. }
  40. if (isValid) {
  41. return confirm('Are you sure you want to save information? Once information stored will not be updated.')
  42. }
  43. return isValid;
  44. }
  45. </script>
  46. <asp:GridView ID="gvdashboard" ClientIDMode="Static" runat="server" ShowHeaderWhenEmpty="true" EmptyDataText="No records found" EmptyDataRowStyle-ForeColor="Red"
  47. EmptyDataRowStyle-HorizontalAlign="Center" AllowPaging="True"
  48. AutoGenerateColumns="False" GridLines="Vertical" HeaderStyle-Wrap="false" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px">
  49. <AlternatingRowStyle BackColor="#DCDCDC" />
  50. <Columns>
  51. <asp:BoundField DataField="ID" HeaderText="ID" ControlStyle-CssClass="hidectrl" ItemStyle-CssClass="hidectrl" HeaderStyle-CssClass="hidectrl"></asp:BoundField>
  52. <asp:BoundField DataField="Month" HeaderText="Month" ItemStyle-Width="5px"></asp:BoundField>
  53. <asp:TemplateField HeaderText="Jan">
  54. <ItemTemplate>
  55. <asp:TextBox ID="txtjan" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  56. </ItemTemplate>
  57. </asp:TemplateField>
  58. <asp:TemplateField HeaderText="Feb">
  59. <ItemTemplate>
  60. <asp:TextBox ID="txtfeb" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  61. </ItemTemplate>
  62. </asp:TemplateField>
  63. <asp:TemplateField HeaderText="Mar">
  64. <ItemTemplate>
  65. <asp:TextBox ID="txtmar" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  66. </ItemTemplate>
  67. </asp:TemplateField>
  68. <asp:TemplateField HeaderText="Apr">
  69. <ItemTemplate>
  70. <asp:TextBox ID="txtapr" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  71. </ItemTemplate>
  72. </asp:TemplateField>
  73. <asp:TemplateField HeaderText="May">
  74. <ItemTemplate>
  75. <asp:TextBox ID="txtmay" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  76. </ItemTemplate>
  77. </asp:TemplateField>
  78. <asp:TemplateField HeaderText="Jun">
  79. <ItemTemplate>
  80. <asp:TextBox ID="txtjun" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  81. </ItemTemplate>
  82. </asp:TemplateField>
  83. <asp:TemplateField HeaderText="Jul">
  84. <ItemTemplate>
  85. <asp:TextBox ID="txtjul" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  86. </ItemTemplate>
  87. </asp:TemplateField>
  88. <asp:TemplateField HeaderText="Aug">
  89. <ItemTemplate>
  90. <asp:TextBox ID="txtaug" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  91. </ItemTemplate>
  92. </asp:TemplateField>
  93. <asp:TemplateField HeaderText="Sep">
  94. <ItemTemplate>
  95. <asp:TextBox ID="txtsep" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  96. </ItemTemplate>
  97. </asp:TemplateField>
  98. <asp:TemplateField HeaderText="Oct">
  99. <ItemTemplate>
  100. <asp:TextBox ID="txtoct" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  101. </ItemTemplate>
  102. </asp:TemplateField>
  103. <asp:TemplateField HeaderText="Nov">
  104. <ItemTemplate>
  105. <asp:TextBox ID="txtnov" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  106. </ItemTemplate>
  107. </asp:TemplateField>
  108. <asp:TemplateField HeaderText="Dec">
  109. <ItemTemplate>
  110. <asp:TextBox ID="txtdec" runat="server" CssClass="form-control nopadding numberonly mandatory" onchange="sumBudgetedValues(this)"></asp:TextBox>
  111. </ItemTemplate>
  112. </asp:TemplateField>
  113. <asp:TemplateField HeaderText="Total">
  114. <ItemTemplate>
  115. <asp:TextBox ID="txttotal" runat="server" CssClass="form-control nopadding" ReadOnly="true"></asp:TextBox>
  116. </ItemTemplate>
  117. </asp:TemplateField>
  118. </Columns>
  119. <EditRowStyle BackColor="#2461BF" />
  120. <FooterStyle BackColor="#507CD1" ForeColor="White" Font-Bold="True" />
  121. <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
  122. <PagerStyle CssClass="pagination-ys" />
  123. <RowStyle BackColor="#EFF3FB" />
  124. <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
  125. <SortedAscendingCellStyle BackColor="#F5F7FB" />
  126. <SortedAscendingHeaderStyle BackColor="#6D95E1" />
  127. <SortedDescendingCellStyle BackColor="#E9EBEF" />
  128. <SortedDescendingHeaderStyle BackColor="#4870BE" />
  129. </asp:GridView>
  130. <asp:Button ID="btnsubmit" CssClass="btn-lg btn-primary" OnClientClick="return Validation();" runat="server" Text="Submit" OnClick="btnsubmit_Click" />