在ASP.NET(GridView)中弹出一个对话框

为gridview“删除”列添加确认对话框

提示: javascript:return confirm('您真的要删除此行吗?')中的javascript:可以省略

如何为gridview控件里的“删除”列添加一个确认对话框?网上众说纷纭,大致见到了三种解决方案,现归纳如下:


1、继承Web.IO里的button控件,为其实现一个IPostback的接口用于回调,具体代码之复杂,只有作者自己想体会吧……

2、在gridview的ItemCreated事件中,遍历所有控件,若属于LinkButton类,且CommandName为“Delete”,就将其添加一个属性,具体做法是将遍历到的Control强制类型转化为LinkButton,然后调用其Atributes.Add方法,添加一个onclick事件内含confirm语句,即

lb.Attributes.Add("onclick", "javascript:return confirm('您真的要删除此行吗?')");
源码:

在后台的GridView1_RowDataBound()方法添加代码:
protected   void   GridView1_RowDataBound(object   sender,   GridViewRowEventArgs   e)
   {
     //如果是绑定数据行  
     if   (e.Row.RowType   ==   DataControlRowType.DataRow)
         {
           if   (e.Row.RowState   ==   DataControlRowState.Normal   ||   e.Row.RowState   ==   DataControlRowState.Alternate)
             {
                  ((LinkButton)e.Row.Cells[1].Controls[0]).Attributes.Add( "onclick ",   "javascript:return   confirm( '你确认要删除:/ " "   +   e.Row.Cells[1].Text   +   "/ "吗? ') ");

// LinkButton lb = (LinkButton)e.Row.Cells[e.Row.Cells.Count - 1].Controls[0];

//lb.Attributes.Add("onclick", "javascript:return confirm('确定要删除?')");
             }
         }  
}

3、目前已知的最简洁的方法,如图,在删除按钮的那一列属性里面,把DeleteText属性设为

<div id="de" οnclick="JavaScript:return confirm('确定删除吗?')">删除</div> 



4、先将该字段转换成模板列(TemplateField),然后编辑这个模板列(TemplateField),选中用于删除的LinkButton或Button,将其onClientClick属性设为

JavaScript:return confirm('您确认删除要删除么?')

即可。

 

 

asp.net gridview添加删除确认对话框

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[5].Attributes.Add("onclick", "return confirm('你确认要编辑吗?')");

}

}

 

方法二

在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,然后在GridView的OnRowDeleting事件中完成删除。但一般情况下我们在做这种删除操作时都需要先让用户确认一下,然后后再删除记录,以避免误操作引起的误删除。

那我们可以通过下面方法给GridView删除前加上一个确认对话框。

首先,在GridView的属性对框话框中点击"Columns"进入它的"字段"设计器;或者在设计窗口直接点击GridView控件右上角的那个小箭头,点击"编辑列",进入"字段"设计器。

接着在"字段"设计器中的左下方"选定的字段"框中,选择以前已加上的那个CommandField"删除"列,这时在右边它的属性列表下会看到一个"将此它段转换为 TemplateFied"的项,点击将它转换为TemplateFied列。

然后退出"字段"设计器,切换到源码视图你会发现该列已由原来的:
<asp:CommandField ShowDeleteButton="True" />
变为了:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"

CommandName="Delete" Text="删除"></asp:LinkButton>
</ItemTemplate>

最后在<asp:LinkButton>中加入:OnClientClick="return confirm('您确认删除该记录吗?');"

这样点击删除时就会先在客户端弹出"您确认删除该记录吗?"对话框,点击"确定",则进行删除;点击"取消",则不删除.
而原来在onRowDeleting事件中写的代码完全不用改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值