Hi ishi12.shah,
Check this example. Now please take its reference and correct your code.
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" GridLines="None">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="100" />
<asp:BoundField DataField="Rate" HeaderText="Rate" ItemStyle-Width="50" />
</Columns>
</asp:GridView>
<table>
<tr>
<td style="width: 94px;">Total</td>
<td style="width: 50px;"><span id="lblDistinctTotal"></span></td>
</tr>
</table>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var array = [];
$('#GridView1 tr:not(:first)').each(function (index, item) {
var name = $(item).find('td').eq(0).html();
var rate = $(item).find('td').eq(1).html();
array.push({ ItemName: name, Rate: rate });
});
var map = {};
var newArray = [];
array.forEach(function (el) {
if (!map[JSON.stringify(el)]) {
map[JSON.stringify(el)] = true;
newArray.push(el);
}
});
var sum = newArray.reduce(function (a, b) {
return a + parseFloat(b.Rate);
}, 0);
$('#lblDistinctTotal').html(sum);
});
</script>
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.AddRange(new System.Data.DataColumn[]
{
new System.Data.DataColumn("Name"),
new System.Data.DataColumn("Rate")
});
dt.Rows.Add("Pencil", 5);
dt.Rows.Add("Eraser", 10);
dt.Rows.Add("Pencil", 5);
dt.Rows.Add("Eraser", 10);
dt.Rows.Add("Sharpener", 3);
dt.Rows.Add("Ruler", 5);
dt.Rows.Add("Sharpener", 3);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim dt As Data.DataTable = New Data.DataTable()
dt.Columns.AddRange(New Data.DataColumn() {
New Data.DataColumn("Name"),
New Data.DataColumn("Rate")})
dt.Rows.Add("Pencil", 5)
dt.Rows.Add("Eraser", 10)
dt.Rows.Add("Pencil", 5)
dt.Rows.Add("Eraser", 10)
dt.Rows.Add("Sharpener", 3)
dt.Rows.Add("Ruler", 5)
dt.Rows.Add("Sharpener", 3)
GridView1.DataSource = dt
GridView1.DataBind()
End If
End Sub
Screenshot