<%@ Page Language="C#" EnableViewState="true" %>
<script runat="server">
[Serializable]
private class Contact
{
private int m_id;
private string m_name;
private string m_phone;
private string m_address;
private string m_city;
public int ID { get { return m_id; } }
public string Name { get { return m_name; } }
public string Phone { get { return m_phone; } }
public string Address { get { return m_address; } }
public string City { get { return m_city; } }
public Contact(int id, string name, string phone, string address, string city)
{
m_id = id;
m_name = name;
m_phone = phone;
m_address = address;
m_city = city;
}
}
private ArrayList _contacts = new ArrayList();
void Page_Init(object sender, System.EventArgs e)
{
MyContacts.ItemCreated += new DataGridItemEventHandler(this.Item_Created);
MyContacts.ItemCommand += new DataGridCommandEventHandler(this.DeleteContact_Click);
}
void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
LoadContacts();
BindContacts();
}
}
void LoadContacts()
{
_contacts.Add(new Contact(1, "John Smith", "1234 Breezeway Lane", "(123) 456-7890", "SmithTown"));
_contacts.Add(new Contact(2, "Jane Doe", "45 Windy Road Blvd.", "(983) 276-9743", "DoeTown"));
_contacts.Add(new Contact(3, "Stan Jackson", "1718 Miracle Mile", "(567) 458-8743", "JacksonTown"));
ViewState["Contacts"] = _contacts;
}
void BindContacts()
{
MyContacts.DataSource = _contacts;
MyContacts.DataBind();
}
void Item_Created(Object Sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
ImageButton _myButton = (ImageButton)e.Item.FindControl("btnDelete");
_myButton.Attributes.Add("onclick", "return confirm_delete();");
}
}
void DeleteContact_Click(object sender, DataGridCommandEventArgs e)
{
_contacts = (ArrayList)ViewState["Contacts"];
_contacts.RemoveAt(e.Item.ItemIndex);
ViewState["Contacts"] = _contacts;
BindContacts();
}
</script>
<html>
<head>
<title>ASP.NET DataGrid Confirm Delete - JavaScript</title>
<script type="text/javascript">
function confirm_delete()
{
if (confirm("Are you sure you want to delete the contact?")==true)
return true;
else
return false;
}
</script>
</head>
<body>
<form runat="server">
<asp:DataGrid id="MyContacts" AutoGenerateColumns="false" runat="server">
<columns>
<asp:TemplateColumn>
<itemtemplate>
<asp:ImageButton ID="btnDelete" ImageUrl="btnDelete.jpg" runat="server" />
</itemtemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Name" HeaderText="Name" runat="server" />
<asp:BoundColumn DataField="Phone" HeaderText="Phone Number" runat="server" />
<asp:BoundColumn DataField="Address" HeaderText="Address" runat="server" />
<asp:BoundColumn DataField="City" HeaderText="City" runat="server" />
</columns>
</asp:DataGrid>
</form>
</body>
</html>