实现对gridview删除行时弹出确认对话框的四种方法

实现对gridview删除行时弹出确认对话框的四种方法

 

在.net2.0中,实现对gridview删除行时弹出确认对话框的四种方法 1,GridView中如何使用CommandField删除时,弹出确认框?
在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。
可以通过下面方法给GridView删除前加上个确认对话框。
首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied”的项,点击将它转换为TemplateFied列。
完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" />
变为了:
CODE:
<asp:TemplateField ShowHeader=&amp;quot;False&amp;quot;>
    <ItemTemplate>
     <asp:LinkButton ID=&amp;quot;LinkButton1&amp;quot; runat=&amp;quot;server&amp;quot; CausesValidation=&amp;quot;False&amp;quot; CommandName=&amp;quot;Delete&amp;quot;    Text=&amp;quot;删除&amp;quot;></asp:LinkButton>
</ItemTemplate>
最后在<asp:LinkButton>中加入:

OnClientClick="javascript:return confirm('真的要删除吗?');"

或者加入:

OnClientClick="if(confirm('你确定要删除此记录吗?')){return true;}else{return false;}"

这样点击删除时就会先在客户端弹出“确认要删除吗?”对话框,而原来在RowDeleting事件中写的代码完全不用改变。

注意:CommandName="delete" CommandName 一定要设为"delete",否则将不触发GridView中的RowDeleting 事件.

注意:在事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)里需要设置GridView中的DataKeysName = Fid 时,才可以找到相应的ID.(Fid为表的主键 id)

 

2,

CODE:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowIndex > -1)
        {
            int id = Convert.ToInt32(GridView1.DataKeys[e.Row.RowIndex].Value);
            LinkButton lbtnDelete = (LinkButton)e.Row.FindControl(&amp;quot;lbtnDelete&amp;quot;);
        if (lbtnDelete != null)
        {
            lbtnDelete.CommandArgument = id.ToString();
            lbtnDelete.Attributes.Add(&amp;quot;onClick&amp;quot;, &amp;quot;<script>return confirm(’是否确认删除!’)</script>&amp;quot;);
        }
    }
}
3,针对C#中的Windows窗体程序,可以先引用System.windwos.Forms,然后在进行处理;对于Web应用程序不适合。

CODE:
using System.Windows.Forms;

protected void gvNewList_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    DialogResult result = MessageBox.Show(&amp;quot;确定要删除本行吗?&amp;quot;, &amp;quot;信息提示!&amp;quot;, MessageBoxButtons.YesNo, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.ServiceNotification);
    if (result == DialogResult.Yes)
    {
        e.Cancel = false;
    }
    else
    {
        e.Cancel = true;
    }
}
4,添加一个删除列

CODE:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    TableCell tc = (TableCell)e.Row.Cells[e.Row.Cells.Count - 1];
    for (int i = 0; i < tc.Controls.Count; i += 2)
    {
        // cerco il controllo ImageButton (ho utilizzato quello)
        Object o = tc.Controls[i];
        if (o is ImageButton)
        {
            // controllo trovato!
            // ora aggiungo l’evento js onClick per chiedere conferma all’utente
            ImageButton lb = (ImageButton) o;
            ((ImageButton)lb).Attributes.Add(&amp;quot;onclick&amp;quot;, @&amp;quot;javascript:return confirm('Attenzione: sicuro di voler cancellare?');&amp;quot;);
        }
    }
}


-------------------------------------------------------------
CODE:
<asp:TemplateField ShowHeader=&amp;quot;False&amp;quot;>
<ItemStyle HorizontalAlign=&amp;quot;Center&amp;quot; Width=&amp;quot;16px&amp;quot; />
<ItemTemplate>
<asp:ImageButton ID=&amp;quot;imgDelete&amp;quot; runat=&amp;quot;server&amp;quot; CausesValidation=&amp;quot;False&amp;quot; CommandName=&amp;quot;Delete&amp;quot; ImageUrl=&amp;quot;~/img/ico_elimina.gif&amp;quot; AlternateText=&amp;quot;Cancella data&amp;quot; OnClientClick=&amp;quot;return confirm(’Sicuro di voler cancellare?’);&amp;quot; />
</ItemTemplate>
</asp:TemplateField>


以上方法总结
---------Template 方式 -----------------------------------------------
CODE:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<aspinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete"
Text="删除" OnClientClick=’return confirm("Are you sure you want to delete this record?");’></aspinkButton>
</ItemTemplate>
</asp:TemplateField>


-------------RowDeleting method------------------------------------------------

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

    Response.Write("<script language=javascript>window.confirm('确定删除吗?')</script>");
}

-------------RowDataBound method--------------------------------------------------------------
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(’确实要删除该记录吗?’)");
    }

}

另外:在web页面中,在按钮事件中添加弹出对话框的方法还有,

在前台点击按钮如b1,事件为b1_click,在后台写b1_click的代码,实现点击后弹出:“确定要删除吗?”选择确定,跳转页面如:aa.aspx,选择取消,无动作!

protected void Page_Load(object sender, EventArgs e)
{
    b1.Attributes.Add("onclick", "javascript:if(confirm('确定要删除吗?')){}else{return false;}");
}

转载于:https://www.cnblogs.com/blogbai/archive/2012/09/27/2705853.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值