This is my Delete
function after a click. Can anyone show me how to do a simple confirmation function?
ASP.net C#.
Previously I had this
ScriptManager.RegisterStartupScript(this,
this.GetType(),
"script",
"confirm('Are you sure you want to Delete Your Discussion?');",
true);
but the above code run after the deletion has been made.
protected void lnk_delete_Click(object sender, EventArgs e)
{
GridViewRow grdrow = (GridViewRow)((LinkButton)sender).NamingContainer;
string fieldID = grdrow.Cells[0].Text;
string query = "Delete from Comment where DiscussionID=@id";
SqlCommand cmd = new SqlCommand(query, cn);
cmd.Parameters.AddWithValue("@id", fieldID);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
string query1 = "Delete from Discussion where DIscussionID=@id";
SqlCommand cmd1 = new SqlCommand(query1, cn);
cmd1.Parameters.AddWithValue("@id", fieldID);
cn.Open();
cmd1.ExecuteNonQuery();
cn.Close();
GridView1.DataBind();
}
I guess it depends where you're putting your RegisterStartupScript
code block. Ideally you want the click confirmation all on the client-side rather than anything server-side.
So on the button the user clicks to delete, you want a client-side click handler (if it's a server-side button, the event is onClientClick
) that calls a function that returns the result of the confirm()
call. Something like this:
<asp:Button ID="lnk_delete" runat="server" onClientClick="return fnConfirmDelete();" onClick="lnk_delete_Click">Delete</asp:Button>
<script language="javascript" type="text/javascript">
function fnConfirmDelete() {
return confirm("Are you sure you want to delete this?");
}
</script>
The use of the two return statements ensures that if the user presses cancel the submission doesn't go ahead (i.e. the button click is cancelled).