- ·上一篇文章:编程技巧 您未必知道的Css技巧
- ·下一篇文章:免费QQ空间五级花最新技巧及代码
能自定义WebControl:广告控件
花3小时写了个广告控件
组合了3中广告形式:1,Flash的轮显广告,如zol.com.cn笔记本频道首页广告。2,一般的flash广告。3,一般的图片广告。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AppControl
{
[ToolboxData("<{0}:Advertisement runat=server>{0}:Advertisement>")]
public class Advertisement : Literal
{
protected override void OnInit(EventArgs e)
{
this.Text = AdCode;
base.OnInit(e);
}
#region 属性
[Browsable(false)]
[Description("广告代码")]
public string AdCode
{
get
{
StringBuilder sb = new StringBuilder();
switch (AdType)
{
case AdTypeList.Img:
sb.AppendFormat(@"
javascript:window.open(this.src);" style="cursor: pointer;"/>
if (CssClass != null)
{
sb.AppendFormat(@" class={0}", CssClass);
}
sb.AppendFormat(@"/>");
break;
case AdTypeList.Flash:
sb.AppendFormat(@"
if (CssClass != null)
{
sb.AppendFormat(" class='{0}'", CssClass);
}
sb.AppendFormat(@">
", Width, Height, Flash);组合了3中广告形式:1,Flash的轮显广告,如zol.com.cn笔记本频道首页广告。2,一般的flash广告。3,一般的图片广告。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AppControl
{
[ToolboxData("<{0}:Advertisement runat=server>{0}:Advertisement>")]
public class Advertisement : Literal
{
protected override void OnInit(EventArgs e)
{
this.Text = AdCode;
base.OnInit(e);
}
#region 属性
[Browsable(false)]
[Description("广告代码")]
public string AdCode
{
get
{
StringBuilder sb = new StringBuilder();
switch (AdType)
{
case AdTypeList.Img:
sb.AppendFormat(@"
if (CssClass != null)
{
sb.AppendFormat(@" class={0}", CssClass);
}
sb.AppendFormat(@"/>");
break;
case AdTypeList.Flash:
sb.AppendFormat(@"
if (CssClass != null)
{
sb.AppendFormat(" class='{0}'", CssClass);
}
sb.AppendFormat(@">
break;
case AdTypeList.Repeat:
sb.AppendFormat(@"
if (CssClass != null)
{
sb.AppendFormat(" class='{0}'", CssClass);
}
sb.AppendFormat(@">
break;
}
string temp = sb.ToString();
temp = temp.Replace('$', '\"');
return temp;
}
}
///
/// 广告类型
///
[Browsable(true)]
[Category("类型")]
[DefaultValue(AdTypeList.Img)]
[Description("广告类型")]
public AdTypeList AdType
{
get
{
object obj = ViewState["AdType"];
return (obj == null) ? AdTypeList.Img : (AdTypeList)obj;
}
set
{
ViewState["AdType"] = value;
}
}
///
/// 广告css样式
///
[Browsable(true)]
[Category("样式")]
[Description("广告样式")]
public string CssClass
{
get
{
object obj = ViewState["CssClass"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["CssClass"] = value;
}
}
///
/// 广告高度,轮显广告不包括下面文字高度
///
[Browsable(true)]
[Category("样式")]
[DefaultValue("200")]
[Description("广告高度,轮显广告不包括下面文字高度")]
public int Height
{
get
{
object obj = ViewState["Height"];
return (obj == null) ? 200 : (int)obj;
}
set
{
ViewState["Height"] = value;
}
}
///
/// 广告宽度
///
[Browsable(true),
Category("样式"),
DefaultValue("300"),
Description("广告宽度")]
public int Width
{
get
{
object obj = ViewState["Width"];
return (obj == null) ? 300 : (int)obj;
}
set
{
ViewState["Width"]=value;
}
}
///
/// 轮显广告的文字高度,其他广告类型无效
///
[Browsable(true),
Category("样式"),
DefaultValue("20"),
Description("轮显广告下的文字高度")
]
public int TextHeight
{
get
{
object obj = ViewState["TextHeight"];
return (obj == null) ? 20 : (int)obj;
}
set
{
ViewState["TextHeight"] = value;
}
}
///
/// 图片路径,轮显广告多个图片用 分开,Flash广告无效
///
[Browsable(true)]
[Category("数据")]
[Description("图片路径,轮显广告多个图片用 分割")]
public string Pics
{
get
{
object obj = ViewState["Pics"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["Pics"] = value;
}
}
///
/// 广告链接,轮显广告多个图片用 分开,Flash广告无效
///
[Browsable(true)]
[Category("数据")]
[Description("广告链接,轮显广告多个链接用 分割")]
public string Links
{
get
{
object obj = ViewState["Links"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["Links"]=value;
}
}
///
/// 标题文字,轮显广告多条标题用 分开,Flash广告无效
///
[Browsable(true)]
[Category("数据")]
[Description("标题文字,轮显广告多条标题用 分开")]
public string Texts
{
get
{
object obj = ViewState["Texts"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["Texts"] = value;
}
}
///
/// Flash 路径,图片广告无效
///
[Browsable(true)]
[Category("数据")]
[Description("Flash路径")]
public string Flash
{
get
{
object obj = ViewState["Flash"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["Flash"] = value;
}
}
#endregion
#region 枚举
///
/// 广告类型
///
public enum AdTypeList : byte
{
///
/// 轮显广告
///
Repeat,
///
/// 图片广告
///
Img,
///
/// Flash广告
///
Flash
}
#endregion
}
}
新建测试页部分代码如下:
Pics="http://www.linkedu.com.cn:9991/UploadFile/button01.gif" Text="
TextHeight="20" Texts="教盟网" Width="300">
Height="200" Text="
TextHeight="20" Width="300">


