Dear @dc4444,
I am modified below reference as per your requirement.
https://www.aspsnippets.com/Articles/Confirmation-Confirm-box-with-Yes-No-Buttons-Options-using-AJAX-Modal-Popup-Extender-in-ASPNet.aspx
please modify as per your requirement
<head runat="server">
<title></title>
<style type="text/css">
body {
font-family: Arial;
font-size: 10pt;
}
.modalBackground {
background-color: Black;
filter: alpha(opacity=40);
opacity: 0.4;
}
.modalPopup {
background-color: #FFFFFF;
width: 300px;
border: 3px solid #0DA9D0;
}
.modalPopup .header {
background-color: #2FBDF1;
height: 30px;
color: White;
line-height: 30px;
text-align: center;
font-weight: bold;
}
.modalPopup .body {
min-height: 50px;
line-height: 30px;
text-align: center;
font-weight: bold;
}
.modalPopup .footer {
padding: 3px;
}
.modalPopup .yes, .modalPopup .no {
height: 23px;
color: White;
line-height: 23px;
text-align: center;
font-weight: bold;
cursor: pointer;
}
.modalPopup .yes {
background-color: #2FBDF1;
border: 1px solid #0DA9D0;
}
.modalPopup .no {
background-color: #9F9F9F;
border: 1px solid #5C5C5C;
}
</style>
<script type="text/javascript">
function CheckOne(obj) {
var grid = obj.parentNode.parentNode.parentNode;
var inputs = grid.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == "checkbox") {
if (obj.checked && inputs[i] != obj && inputs[i].checked) {
inputs[i].checked = false;
}
}
}
}
function SelectAllCheckboxes(spanChk) {
// Added as ASPX uses SPAN for checkbox
var oItem = spanChk.children;
var theBox = (spanChk.type == "checkbox") ?
spanChk : spanChk.children.item[0];
xState = theBox.checked;
elm = theBox.form.elements;
for (i = 0; i < elm.length; i++)
if (elm[i].type == "checkbox" &&
elm[i].id != theBox.id) {
//elm[i].click();
if (elm[i].checked != xState)
elm[i].click();
//elm[i].checked=xState;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
RowStyle-BackColor="#A1DCF2" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000"
runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkSelect" />
</ItemTemplate>
<HeaderTemplate>
<input id="chkAll" onclick="javascript: SelectAllCheckboxes(this);" runat="server" type="checkbox" />
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
</Columns>
</asp:GridView>
<asp:Button ID="BtnDelete" runat="server" Text="Delete" OnClick="BtnDelete_Click" />
<asp:LinkButton ID="lnkDelete" Text="" runat="server" />
<cc1:ModalPopupExtender ID="mpe" runat="server" PopupControlID="pnlPopup" TargetControlID="lnkDelete" CancelControlID="btnNo" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlPopup" runat="server" CssClass="modalPopup" Style="display: none">
<div class="header">
Confirmation
</div>
<div class="body">
Do you want to delete this record?
</div>
<div class="footer" align="right">
<asp:Button ID="btnYes" runat="server" Text="Yes" CssClass="yes" OnClick="btnYes_Click" />
<asp:Button ID="btnNo" runat="server" Text="No" CssClass="no" />
</div>
</asp:Panel>
</form>
</body>
</html>
code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class CS : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Country") });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
ViewState["Persons"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void DeleteRecord(object sender, EventArgs e)
{
int id = int.Parse((sender as LinkButton).CommandArgument);
DataTable dt = (DataTable)ViewState["Persons"];
dt.Rows.Remove(dt.Select("Id = " + id)[0]);
ViewState["Persons"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void BtnDelete_Click(object sender, EventArgs e)
{
int ChkCnt = 0;
for (int q = 0; q <= GridView1.Rows.Count - 1; q++)
{
CheckBox chkSelect = (CheckBox)GridView1.Rows[q].Cells[0].FindControl("chkSelect");
if (chkSelect.Checked)
{
ChkCnt = ChkCnt + 1;
mpe.Show();
return;
}
}
}
protected void btnYes_Click(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox chkSelect = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkSelect");
if (chkSelect.Checked)
{
i = i + 1;
DataTable dt = (DataTable)ViewState["Persons"];
dt.Rows.Remove(dt.Select("Id = " + i)[0]);
ViewState["Persons"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}