With this code you can change the status from Approve to Approved
HTML:
<form id="form1" runat="server">
<div>
<div class="rounded_corners" style="width: 300px">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="300" DataKeyNames="ID"
HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2"
AlternatingRowStyle-BackColor="White" RowStyle-ForeColor="#3A3A3A">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" Text='<%# Eval("Name") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%# Eval("Status").ToString() == "0" ? "Approve?" : "Approved!" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Change Status">
<ItemTemplate>
<asp:LinkButton ID="lnkApprove" runat="server" Text="Change " OnClick="ChangeStatus"
OnClientClick="return confirm('Do you want to approve?')"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</form>
Style:
<style type="text/css">
.rounded_corners
{
border: 1px solid #A1DCF2;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
overflow: hidden;
}
.rounded_corners td, .rounded_corners th
{
border: 1px solid #A1DCF2;
font-family: Arial;
font-size: 10pt;
text-align: center;
}
.rounded_corners table table td
{
border-style: none;
}
</style>
Namespace:
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateGridView();
}
}
protected void ChangeStatus(object sender, EventArgs e)
{
GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
int id = Convert.ToInt32(this.GridView1.DataKeys[row.RowIndex].Value);
string name = (row.FindControl("lblName") as Label).Text;
string status = (row.FindControl("lblStatus") as Label).Text;
this.HolidayApproval(id, name, status);
Response.Redirect(Request.Url.AbsoluteUri);
}
private void HolidayApproval(int id, string name, string status)
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("UPDATE HolidaysApproval SET Status = @Status WHERE ID = @Id AND Name = @Name", conn))
{
cmd.Parameters.AddWithValue("@Status", status == "Approve?" ? 1 : 0);
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@Name", name);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
private void PopulateGridView()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM HolidaysApproval", conn))
{
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
da.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
}
}
}
SQL:
CREATE TABLE [dbo].[HolidaysApproval](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
[Status] [int] NOT NULL,
CONSTRAINT [PK_HolidaysApproval] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Thank You.