My Grid has 2 link buttons, delete button has to delete a row and confirm button has to update a BIT data type column to True from False. The delete Link button works properly as intended but the confirm Link Button deletes the row instead of updating it. I have included both my grid and C# code.
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="report_num" OnRowDataBound="GridView1_RowDataBound" Width="995px">
<Columns>
<asp:BoundField DataField="report_num" HeaderText="report_num" />
<asp:BoundField DataField="location" HeaderText="location" />
<asp:BoundField DataField="lat" HeaderText="lat" />
<asp:BoundField DataField="lng" HeaderText="lng" />
<asp:BoundField DataField="severity_level" HeaderText="severity_level" />
<asp:TemplateField HeaderText="Confirm">
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">Confirm Report</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Delete Report</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
C# code
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton lnk1 = sender as LinkButton;
GridViewRow gridrow1 = lnk1.NamingContainer as GridViewRow;
int report_num = Convert.ToInt16(GridView1.DataKeys[gridrow1.RowIndex].Value.ToString());
con.Open();
cmd.CommandText = "UPDATE [temporary_markers] SET confirmation ='True' WHERE report_num =" + report_num;
cmd.Connection = con;
int a = cmd.ExecuteNonQuery();
con.Close();
if (a > 0)
{
bindGridView();
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
GridViewRow gridrow = lnk.NamingContainer as GridViewRow;
int report_num = Convert.ToInt32(GridView1.DataKeys[gridrow.RowIndex].Value.ToString());
con.Open();
cmd.CommandText = "DELETE FROM [temporary_markers] WHERE report_num=" + report_num;
cmd.Connection = con;
int a = cmd.ExecuteNonQuery();
con.Close();
if (a > 0)
{
bindGridView();
}
}