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;

        //删除数据
      }

posted @ 2009-07-04 10:46  老二  阅读(1220)  评论(0编辑  收藏  举报