zoukankan
html css js c++ java
FlashAdRotator
我们知道.net自带的AdRotator控件很好用,很多客户都要求做这种轮流的广告,但是有些广告为了效果会采用flash,我在以前的一个项目中就遇到这种情况,所以就写了这个控件,今天把这个控件(
FlashAdRotator)
共享下。(大家对我不要有太高的期望啊,因为我只是很简单的实现了功能)
FlashAdRotator继承自
AdRotator,这样我们就可以省掉很多的事情。
[DefaultProperty(
"
AdvertisementFile
"
)]
[ToolboxData(
"
<{0}:FlashAdRotator runat=server></{0}:FlashAdRotator>
"
)]
public class FlashAdRotator
:
AdRotator
{
private bool isFlash
=
false;
private string imageUrl
=
string
.
Empty;
private string navigateUrl
=
string
.
Empty;
private string alt
=
string
.
Empty;
protected override void Render(HtmlTextWriter writer)
{
//writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "onclickMethod");
if
(isFlash)
{
Flash flash
=
new Flash();
flash
.
ImageUrl
=
this
.
GetUrl(this
.
imageUrl);
flash
.
Width
=
this
.
Width;
flash
.
Height
=
this
.
Height;
flash
.
ID
=
this
.
ID;
flash
.
Style
.
Value
=
this
.
Style
.
Value;
this
.
Controls
.
Add(flash);
flash
.
RenderControl(writer);
}
else
{
base
.
Render(writer);
}
}
protected override void OnAdCreated(AdCreatedEventArgs e)
{
base
.
OnAdCreated(e);
imageUrl
=
e
.
ImageUrl;
navigateUrl
=
e
.
NavigateUrl;
alt
=
e
.
AlternateText;
if
(imageUrl
.
ToLower()
.
EndsWith(
"
.swf
"
))
{
this
.
isFlash
=
true;
}
}
private string GetUrl(string virtualUrl)
{
string applicationPath
=
(HttpRuntime
.
AppDomainAppVirtualPath
.
Length
>
1
)
?
HttpRuntime
.
AppDomainAppVirtualPath
:
String
.
Empty;
if
(
!
string
.
IsNullOrEmpty(virtualUrl))
{
if
(virtualUrl
.
StartsWith(
"
~/
"
))
return
applicationPath
+
virtualUrl
.
Substring(
1
);
else
if
(virtualUrl
.
StartsWith(
"
http://
"
))
return
virtualUrl;
}
return
virtualUrl;
}
}
一般情况下,客户会要求我们做广告点击统计。如果这样的话,我们就要为控件加一个客户端的点击事件。
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "onclickMethod");
然后写个方法去调用服务器上的广告计数的webservice,利用webservice将结果存入数据库,并进行统计。
查看全文
相关阅读:
docker安装
快速删除docker中的容器
CentOS赋予一个普通用户root权限
大型电商网站:第三章:环境搭建
面试:第十一章:缓存
面试:第十章:单点登录
面试:第九章:分布式 、高并发、集群、负载均衡、高可用
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
面试:第七章:冷门面试题
大型电商网站:第一章:主要电商模式
原文地址:https://www.cnblogs.com/Linjianyu/p/982085.html
最新文章
[LeetCode] 28. Implement strStr()
[算法] 字符串的简单模式匹配
[LeetCode] 21. Merge Two Sorted Lists
[Leetcode] 20. Valid Parentheses(Stack)
[Leetcode] 15.3Sum
[Leetcode] 8.String to Integer (atoi)
LeetCode难度和面试频率(转)
[Leetcode] 4.Median of Two Sorted Arrays
手脱PEtite v2.1
OD常见指令和快捷键
热门文章
手脱Upack 2.x
手脱EXE32Pack v1.39
手脱EZIP v1.0
集群ssh服务和免密码登录的配置
maven 配置 pom.xml 打包生成:单jar包/jar包+lib目录
merge into
安装hive的web界面
Shell 字符串处理、获取文件名和后缀名
卸载CentOS7自带的OpenJDK
Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目
Copyright © 2011-2022 走看看