asp.net2.0自定义控件---弹出确定与取消对话框

原创 2007年09月12日 12:57:00



如果想把按钮加一个对话框通常用以下方法:
Button1.Attributes.Add("OnClick", "return confirm('是否提交?');");
Button1.Attributes.Add("onclick", "if(confirm('是否提交?')){return true;}else{return false;}");
现在我们给她做成控件吧。
1、建立项目ZgdxButton和三个类NormalButton.cs,ImgButton.cs, LinkButton.cs

2、NormalButton.cs代码如下

using System;
using
 System.Collections.Generic;
using
 System.ComponentModel;
using
 System.Text;
using
 System.Web;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Drawing;

namespace
 ZgdxButton
{
    [DefaultProperty(
"Text"
)]
    [ToolboxData(
"<{0}:NormalButton runat=server></{0}:NormalButton>"
)]
    
public class
 NormalButton : System.Web.UI.WebControls.Button
    {
        
private string _confirmMessage = ""
;

        
public
 NormalButton()
            : 
base
()
        {
            
base.Text = "Button"
;
        }

        [Bindable(
true
),
        Category(
"Appearance"
),
        DefaultValue(
""
),
        Description(
"输入弹出提示内容,延边职大(中国.延吉)"
)]
        
public string
 ConfirmMessage
        {
            
get

            {
                
return _confirmMessage;
            }
            
set

            {
                _confirmMessage 
= value;
            }
        }

        
//EditorAttribute:指定用来更改属性的编辑器version

        /// <summary>
        
/// 指定控件的帮助信息
        
/// </summary>

        private string _help = "帮助";
        [CategoryAttribute(
"自定义编辑器"
),
        DefaultValueAttribute(
"1.0"
),
        DescriptionAttribute(
"帮助信息,延边职大(中国.延吉)"
),
        ReadOnlyAttribute(
true
),
        EditorAttribute(
typeof(AppVerConverter), typeof
(System.Drawing.Design.UITypeEditor))]
        
public string
 Help
        {
            
get { return this
._help; }
            
set { this._help =
 value; }
        }

        
/// <summary>

        
/// 自定义UI的属性编辑器(弹出消息)
        
/// </summary>

        public class AppVerConverter : System.Drawing.Design.UITypeEditor
        {
            
/// <summary>

            
/// 覆盖此方法以返回编辑器的类型。
            
/// </summary>

            public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
            {
                
return
 System.Drawing.Design.UITypeEditorEditStyle.Modal;
            }

            
/// <summary>

            
/// 覆盖此方法以显示版本信息,Button控件,版本V1.0
            
/// </summary>

            public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
            {
                
string help = " 弹出提示按钮控件帮助信息 "
;
                help 
+= "主要属性: "
;
                help 
+= "ConfirmMessage属性:填写弹出的提示信息,不写则和普通控件一样。 "
;


                help 
+= " 开发作者:延边职大.许老师在线支持:xuhongkaicn@yahoo.com.cn"
;
                help 
+= " 版本更新: Version1.0:2007年"
;

                System.Windows.Forms.MessageBox.Show(help, 
"帮助信息"
);
                
return
 value;
            }
        }
        
/// <summary>

        
/// 将此控件呈现给指定的输出参数。
        
/// </summary>

        
/// <param name="output"> 要写出到的 HTML 编写器 </param>
        protected override void Render(HtmlTextWriter output)
        {
            
if (this._confirmMessage != ""
)
            {
                
base.Attributes.Add("OnClick""return confirm('" + this._confirmMessage + "');"
);
            }
            
base
.Render(output);
        }
    }
}

3、ImgButton.cs代码如下:

using System;
using
 System.Collections.Generic;
using
 System.ComponentModel;
using
 System.Text;
using
 System.Web;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Drawing;
namespace
 ZgdxButton
{
    [DefaultProperty(
"Text"
)]
    [ToolboxData(
"<{0}:ImgButton runat=server></{0}:ImgButton>"
)]
    
public class
 ImgButton : System.Web.UI.WebControls.ImageButton
    {
        
private string _confirmMessage = ""
;



        [Bindable(
true
),
        Category(
"Appearance"
),
        DefaultValue(
""
),
        Description(
"输入弹出提示内容,延边职大(中国.延吉)"
)]
        
public string
 ConfirmMessage
        {
            
get

            {
                
return _confirmMessage;
            }
            
set

            {
                _confirmMessage 
= value;
            }
        }

        
//EditorAttribute:指定用来更改属性的编辑器version

        /// <summary>
        
/// 指定控件的帮助信息
        
/// </summary>

        private string _help = "帮助";
        [CategoryAttribute(
"自定义编辑器"
),
        DefaultValueAttribute(
"1.0"
),
        DescriptionAttribute(
"帮助信息,延边职大(中国.延吉)"
),
        ReadOnlyAttribute(
true
),
        EditorAttribute(
typeof(AppVerConverter), typeof
(System.Drawing.Design.UITypeEditor))]
        
public string
 Help
        {
            
get { return this
._help; }
            
set { this._help =
 value; }
        }

        
/// <summary>

        
/// 自定义UI的属性编辑器(弹出消息)
        
/// </summary>

        public class AppVerConverter : System.Drawing.Design.UITypeEditor
        {
            
/// <summary>

            
/// 覆盖此方法以返回编辑器的类型。
            
/// </summary>

            public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
            {
                
return
 System.Drawing.Design.UITypeEditorEditStyle.Modal;
            }

            
/// <summary>

            
/// 覆盖此方法以显示版本信息,Button控件,版本V1.0
            
/// </summary>

            public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
            {
                
string help = " 弹出提示按钮控件帮助信息 "
;
                help 
+= "主要属性: "
;
                help 
+= "ConfirmMessage属性:填写弹出的提示信息,不写则和普通控件一样。 "
;


                help 
+= " 开发作者:延边职大.许老师在线支持:xuhongkaicn@yahoo.com.cn"
;
                help 
+= " 版本更新: Version1.0:2007年"
;

                System.Windows.Forms.MessageBox.Show(help, 
"帮助信息"
);
                
return
 value;
            }
        }

        
/// <summary>

        
/// 将此控件呈现给指定的输出参数。
        
/// </summary>

        
/// <param name="output"> 要写出到的 HTML 编写器 </param>
        protected override void Render(HtmlTextWriter output)
        {
            
if (this._confirmMessage != ""
)
            {
                
base.Attributes.Add("OnClick""return confirm('" + this._confirmMessage + "');"
);
            }
            
base
.Render(output);
        }
    }
}

4、LinkButton.cs代码如下:

using System;
using
 System.Collections.Generic;
using
 System.ComponentModel;
using
 System.Text;
using
 System.Web;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Drawing;
namespace
 ZgdxButton
{
    [DefaultProperty(
"Text"
)]
    [ToolboxData(
"<{0}:LinkButton runat=server></{0}:LinkButton>"
)]
    
public class
 LinkButton : System.Web.UI.WebControls.LinkButton
    {
        
private string _confirmMessage = ""
;

        
public
 LinkButton()
            : 
base
()
        {
            
base.Text = "LinkButton"
;
        }

        [Bindable(
true
),
        Category(
"Appearance"
),
        DefaultValue(
""
),
        Description(
"输入弹出提示内容,延边职大(中国.延吉)"
)]
        
public string
 ConfirmMessage
        {
            
get

            {
                
return _confirmMessage;
            }
            
set

            {
                _confirmMessage 
= value;
            }
        }

        
//EditorAttribute:指定用来更改属性的编辑器version

        /// <summary>
        
/// 指定控件的帮助信息
        
/// </summary>

        private string _help = "帮助";
        [CategoryAttribute(
"自定义编辑器"
),
        DefaultValueAttribute(
"1.0"
),
        DescriptionAttribute(
"帮助信息,延边职大(中国.延吉)"
),
        ReadOnlyAttribute(
true
),
        EditorAttribute(
typeof(AppVerConverter), typeof
(System.Drawing.Design.UITypeEditor))]
        
public string
 Help
        {
            
get { return this
._help; }
            
set { this._help =
 value; }
        }

        
/// <summary>

        
/// 自定义UI的属性编辑器(弹出消息)
        
/// </summary>

        public class AppVerConverter : System.Drawing.Design.UITypeEditor
        {
            
/// <summary>

            
/// 覆盖此方法以返回编辑器的类型。
            
/// </summary>

            public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
            {
                
return
 System.Drawing.Design.UITypeEditorEditStyle.Modal;
            }

            
/// <summary>

            
/// 覆盖此方法以显示版本信息,Button控件,版本V1.0
            
/// </summary>

            public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
            {
                
string help = " 弹出提示按钮控件帮助信息 "
;
                help 
+= "主要属性: "
;
                help 
+= "ConfirmMessage属性:填写弹出的提示信息,不写则和普通控件一样。 "
;


                help 
+= " 开发作者:延边职大.许老师在线支持:xuhongkaicn@yahoo.com.cn"
;
                help 
+= " 版本更新: Version1.0:2007年"
;

                System.Windows.Forms.MessageBox.Show(help, 
"帮助信息"
);
                
return
 value;
            }
        }

        
/// <summary>

        
/// 将此控件呈现给指定的输出参数。
        
/// </summary>

        
/// <param name="output"> 要写出到的 HTML 编写器 </param>
        protected override void Render(HtmlTextWriter output)
        {
            
if (this._confirmMessage != ""
)
            {
                
base.Attributes.Add("OnClick""return confirm('" + this._confirmMessage + "');"
);
            }
            
base
.Render(output);
        }
    }
}

5、生成项目获得ZgdxButton.dll控件文件,加入到ASP.NET工具箱里,共有3个控件
6、当把控件拖放到网页里,查看属性会发现多了一个ConfirmMessage属性,和Help属性。在ConfirmMessage属性里可以输入弹出对话框内容,如果不填写则和普通按钮一样。

7、运行效果如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

在.net2.0中,实现对gridview删除行时弹出确认对话框的四种方法

1,GridView中如何使用CommandField删除时,弹出确认框?   在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:asp:CommandFi...

Asp.Net2.0新GridView控件使用

原文地址:http://www.cnblogs.com/blueocean/articles/555855.html 一、Gridview中的内容导出到Excel   在日常工作中,经常要将g...

ASP.NET2.0服务器控件之捕获回传事件

上一篇文章介绍了实现自定义服务器控件事件的基本概念。本文将通过典型示例讲解捕获回传事件的实现方法。   1. 实现捕获回传事件   如果服务器控件需要捕获来自客户端的回传事件,并想为该回传...

JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法

jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面效果,easyui的相关地址是:http://jquery-easyui.wikidot.co...
  • scq503
  • scq503
  • 2015年03月05日 17:53
  • 586

利用ASP.NET 2.0创建自定义Web控件(一)

简介   从使用基本的文本编辑器到创作标记页面,Web 开发已经经历了一个漫长的过程。目前,集成开发环境 (IDE) 为开发过程中的几乎每个方面都提供了图形化表示形式。此外,还实现各种说明性编程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net2.0自定义控件---弹出确定与取消对话框
举报原因:
原因补充:

(最多只允许输入30个字)