一聚教程网:一个值得你收藏的教程网站

热门教程

教你做一个可以弹出确认对话框的自定义Web服务器控件ConfirmButton

时间:2022-06-30 11:52:06 编辑:袖梨 来源:一聚教程网

经常在论坛里看到类似这样的问题:“…如何在点击删除按钮的时候弹出个确认删除对话框”。
下面我们来自己写一个这样的自定义Web服务器控件!
思路如下:
继承System.Web.UI.WebControls.Button控件
增加一个属性“ConfirmMessage”来表示弹出确认框上面的提示信息。
在服务器控件呈现在页面之前把一段javascript写到页面
内容如下:

查一下msdn中对于Control.OnPreRender 方法的描述
可以得到“此方法通知服务器控件在保存视图状态和呈现内容之前,执行任何必要的预呈现步骤”.
所以我们只要在OnPreRender方法内 用Page.RegisterClientScriptBlock把这段javascript发送到客户端,并且给Button. Attributes属性内添加一个“onclick”的客户端属性对应值为: "return _doAspxBoyConfirm()”.
详细情况可以查阅
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemwebuiwebcontrolswebcontrolclassattributestopic.htm
这样一个具有ConFirm功能的Button就基本上建立起来了。
新建一个测试该控件的工程
在工具箱上点右键选择“添加/移除项”,点击浏览选择编译好的dll文件,点击确定,你会发现ConFirmButton已经添加到工具箱内了
将其托到一个Aspx页面内 在属性设置内给ConfirmMessage值为你要的弹出框内容比如“确定删除吗?”,按F5运行。
当点该按钮时会弹出一个confirm对话框询问“确定删除吗?”,如果点击确定则执行button的Button_Click事件,如果点击取消则不执行。
你可以查看他生成的html代码,以加深对该控件工作原理的理解
完整的代码如下:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Text;
namespace AspxBoy.Com.ConfirmButton
{
///
/// Button点击时会弹出一个对话框要求确认
///

public class ConfirmButton : System.Web.UI.WebControls.Button
{
private string _confirmMessage;
///
/// 当客户端点击此Button时弹出的提示消息筐的内容

热门栏目