Refer this example
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="status" HeaderText="Status" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Update" OnClick = "UpdateStatus" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Name"), new DataColumn("Status") });
dt.Rows.Add("John", "Open");
dt.Rows.Add("Rick", "Open");
dt.Rows.Add("Andrew", "Open");
dt.Rows.Add("Peter", "Open");
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void UpdateStatus(object sender, EventArgs e)
{
GridViewRow row = (sender as Button).NamingContainer as GridViewRow;
row.Cells[1].Text = "Closed";
}