GrideView(二)---删除功能

情景一、 没有外键关联,
操作:在数据源中将删除选项选中--- GrideView 中的删除 选项选中 即可
情景二、 有外键关联
*RowDeleting 行删除前触发
*RowDeleted 行删除后触发
操作有外键关联的表,需要在执行删除前先把关联数据删除:
法一:
// 执行删除操作前执行

 1 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 2 {
 3 //// 获取主键
 4 //string key = e.Keys["Code"].ToString(); //有个前提:事先必须要保证GridView的DataKeyNames属性有值。
 5 // //执行删除
 6 //var query1 = _Context.Work.Where(p => p.InfoCode == key);
 7 //var query2 = _Context.Family.Where(p=>p.InfoCode == key);
 8 //_Context.Work.DeleteAllOnSubmit(query1);
 9 //_Context.Family.DeleteAllOnSubmit(query2);
10 //_Context.SubmitChanges();
11 ////执行 LinQDataSource的删除功能
12 }
13 // 删除完毕后执行,提示用户已经删除完毕
14 protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
15 {
16 //Literal1.Text = "<script language=javascript>alert('删除成功')</script>";
17 }

// 查询数据相关数据,没有数据时,页面提示
将EmptyDataText属性设置 : “未找到相关数据!”

法二:

 1 //删除工作简历和家庭关系
 2 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 3 {
 4 //获取主键
 5 string key = e.Keys["Code"].ToString();
 6 //把三个表都删掉。
 7 var query = _Context.Info.Where(p=>p.Code == key);
 8 Info data = query.First();
 9 
10 _Context.Work.DeleteAllOnSubmit(data.Work);
11 _Context.Family.DeleteAllOnSubmit(data.Family);
12 _Context.Info.DeleteOnSubmit(data);
13 _Context.SubmitChanges();
14 //刷新,阻止事件向前进行。
15 GridView1.DataBind();
16 e.Cancel = true; //阻止事件序列。
17 //Literal1.Text = "<script language=javascript>alert('删除成功')</script>";// 提示删除成功
18 }

方法三、1、编辑列--添加超链接列(HyperLinkField)--设置text =“删除”;
2、 将此超链接指向某个字段(DataNavigateUrlFields=Code)
3、DataNavigateUrlFormatString=“Delete.ashx?id={0}” 注:{0}的意思是指的上面的指向的Code;
4、添加一般处理程序(Delete.ashx) 添加删除程序并跳转回显示页面;


情景描述: 执行删除时 ,提示是否确定删除
法一、

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//给删除按钮加确认
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btnDelete = e.Row.Cells[5].Controls[0] as LinkButton;
btnDelete.OnClientClick = "return confirm('确认要删除吗?')";
}
}

  


法二 、 在“编辑列”中 给 删除 添加 样式,添加样式后
通过Jquery 添加点击事件
<script language="javascript">
$(document).ready(function () {
$(".del").click(function () {
return confirm('确认要删除吗?');
});
});
</script>

原文地址:https://www.cnblogs.com/woniu-net/p/4777597.html