Asp.Net WebControl开发
这两天有时间研究了下Web自定义控件的开发,觉得还是满有意思的,跟大家分享一下我的成果!
1.ImageLinkButtom
源代码展示:
Code
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Linq;
5using System.Text;
6using System.Web;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9![]()
10namespace JackSoftControls.UI.Buttons
11{
12[DefaultProperty("ControlWidth")]
13[DefaultEvent("OnClick")]
14[ToolboxData("<{0}:ImageLinkButton runat=server></{0}:ImageLinkButton>")]
15[System.Drawing.ToolboxBitmap(typeof(ImageLinkButton), "UI.Buttons.ImageLinkButton.bmp")]
16public class ImageLinkButton : WebControl, INamingContainer, IPostBackEventHandler
17![]()
{
18private static readonly object _Click;
19private string PoseBackString = string.Empty;
20[Description("当图片连接按钮按下时,您希望程序做的事情,请提供功能的详细代码实现")]
21public event EventHandler OnClick
22![]()
{
23add
24![]()
{
25Events.AddHandler(this, value);
26}
27remove
28![]()
{
29Events.RemoveHandler(this, value);
30}
31}
32[Description("指定空间的宽度,一般为图片宽度")]
33public int ControlWidth
34![]()
{
35get;
36set;
37}
38[Description("指定空间的高度,一般为图片高度")]
39public int ControlHeight
40![]()
{
41get;
42set;
43}
44[Description("指定图片的地址")]
45[UrlProperty]
46public string ImageUrl
47![]()
{
48get;
49set;
50}
51protected override void Render(HtmlTextWriter output)
52![]()
{
53if ((base.Site != null) && base.Site.DesignMode)
54![]()
{
55PoseBackString = "JavaScript:__doPostBack('" + this.ClientID.ToString().Trim() + "','1')";
56output.Write(string.Format("<a href=\"
{0}\"><img src=\"
{1}\" style=\"width:
{2};height:
{3};border:0\" /></a>", PoseBackString, this.ImageUrl, this.ControlWidth, this.ControlHeight));
57}
58else
59![]()
{
60base.Render(output);
61}
62}
63protected override void CreateChildControls()
64![]()
{
65PoseBackString = "JavaScript:__doPostBack('" + this.ClientID.ToString().Trim() + "','1')";
66string ImageButtonContext = string.Format("<a href=\"
{0}\"><img src=\"
{1}\" style=\"width:
{2};height:
{3};border:0\" /></a>", PoseBackString, this.ImageUrl, this.ControlWidth, this.ControlHeight);
67LiteralControl Lin1 = new LiteralControl(ImageButtonContext);
68Controls.Add(Lin1);
69}
70![]()
71IPostBackEventHandler 成员#region IPostBackEventHandler 成员
72public void RaisePostBackEvent(string eventArgument)
73![]()
{
74TextOnClick(this, EventArgs.Empty);
75}
76#endregion
77![]()
78protected void TextOnClick(object sender, EventArgs e)
79![]()
{
80EventHandler hd = (EventHandler)base.Events[this];
81if (hd != null)
82![]()
{
83hd(sender, e);
84}
85}
86}
87}
88
附Demo以供测试!
谢谢大家这么长时间的支持!
下载该Demo 版本号:1.0.9719.2 证书密码:840525





[DefaultProperty(
}
}
浙公网安备 33010602011771号