Hi akhter,
Refer below sample.
HTML
<asp:GridView runat="server" AutoGenerateColumns="false" ID="GridView1">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField HeaderText="Minus">
<ItemTemplate>
<asp:Button Text="-" runat="server" OnClick="CalculateMinus" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="QTY">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtQuatntity" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Plus">
<ItemTemplate>
<asp:Button ID="Button1" Text="+" runat="server" OnClick="CalculatePlus" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Price" HeaderText="Price" />
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lblTotal" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name", typeof(string)), new DataColumn("Price", typeof(int)) });
dt.Rows.Add("Normal Wax- Full Hands", 100);
dt.Rows.Add("Normal Wax- Half Hands", 100);
dt.Rows.Add("Normal Wax- Neck", 200);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void CalculateMinus(object sender, EventArgs e)
{
Button btn = (sender) as Button;
GridViewRow row = (GridViewRow)btn.NamingContainer;
int qty = Convert.ToInt16((row.FindControl("txtQuatntity") as TextBox).Text);
int price = Convert.ToInt16(row.Cells[4].Text);
(row.FindControl("lblTotal") as Label).Text = (qty - price).ToString();
}
protected void CalculatePlus(object sender, EventArgs e)
{
Button btn = (sender) as Button;
GridViewRow row = (GridViewRow)btn.NamingContainer;
int qty = Convert.ToInt16((row.FindControl("txtQuatntity") as TextBox).Text);
int price = Convert.ToInt16(row.Cells[4].Text);
(row.FindControl("lblTotal") as Label).Text = (qty + price).ToString();
}
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 DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn() {New DataColumn("Name", GetType(String)), New DataColumn("Price", GetType(Integer))})
dt.Rows.Add("Normal Wax- Full Hands", 100)
dt.Rows.Add("Normal Wax- Half Hands", 100)
dt.Rows.Add("Normal Wax- Neck", 200)
GridView1.DataSource = dt
GridView1.DataBind()
End If
End Sub
Protected Sub CalculateMinus(ByVal sender As Object, ByVal e As EventArgs)
Dim btn As Button = TryCast((sender), Button)
Dim row As GridViewRow = CType(btn.NamingContainer, GridViewRow)
Dim qty As Integer = Convert.ToInt16((TryCast(row.FindControl("txtQuatntity"), TextBox)).Text)
Dim price As Integer = Convert.ToInt16(row.Cells(4).Text)
TryCast(row.FindControl("lblTotal"), Label).Text = (qty - price).ToString()
End Sub
Protected Sub CalculatePlus(ByVal sender As Object, ByVal e As EventArgs)
Dim btn As Button = TryCast((sender), Button)
Dim row As GridViewRow = CType(btn.NamingContainer, GridViewRow)
Dim qty As Integer = Convert.ToInt16((TryCast(row.FindControl("txtQuatntity"), TextBox)).Text)
Dim price As Integer = Convert.ToInt16(row.Cells(4).Text)
TryCast(row.FindControl("lblTotal"), Label).Text = (qty + price).ToString()
End Sub
Screenshot