GridView删除提示对话框
我们在ASP.NET程序的开发过程中,常常需要向用户给出提示信息,比如是否“操作成功”,“确定”还是“取消”操作。
如果是 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,方法比较简单,我们采用在按钮中添加属性来完成:
举例如下:
public System.Web.UI.WebControls.Button btnDelRow;
btnDelRow.Attributes.Add("onclick", "return confirm('确定要删吗?');");
如果是在一个GridView中,想要删除选中的行,之前要弹出提示对话框,这个就比较麻烦。
建立一个新类,名为DeleteButtonField, 该类继承自LinkButton类,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
namespace myControls
{
public class DeleteButton : LinkButton
{
private string _confirmText = "删除这条记录吗?";
public string ConfirmText
{
get { return _confirmText; }
set { _confirmText = value; }
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
base.Attributes["onclick"] = string.Format("return confirm('{0}');", _confirmText);
}
public override void DataBind()
{
base.DataBind();
}
}
在ASPX界面作如下:
引入该控件
<%@ Register TagPrefix="custom" Namespace="myControls" %>
<asp:TemplateField >
<HeaderTemplate>删除</HeaderTemplate>
<ItemTemplate>
<custom:DeleteButton ID="lbtnDelete" runat="server" ConfirmText="你确定要删除该记录吗?" CommandArgument='<%#Eval("ID") %>' onclick="lbtnDelete_Click">删除</custom:DeleteButton>
</ItemTemplate>
</asp:TemplateField>
然后在.cs文件中
protected void lbtnDelete_Click(object sender, EventArgs e)
{
LinkButton lbtn = (LinkButton)sender;
string ID = lbtn.CommandArgument;
//删除数据
}