發布支援flash的 AdRotator C#版控制項源碼

來源:互聯網
上載者:User
 1using System;
 2using System.Web.UI;
 3using System.Web.UI.WebControls;
 4using System.ComponentModel;
 5using System.Text;
 6namespace FlashAdRotator
 7{
 8    /**//// <summary>
 9    /// fpAdRotator 的摘要說明。
10    /// </summary>
11    [DefaultProperty("Text"), 
12        ToolboxData("<{0}:fpAdRotator runat=server></{0}:fpAdRotator>")]
13    public class fpAdRotator : System.Web.UI.WebControls.AdRotator
14    {
15        private bool isflashad;
16        private string imgurl;
17        [Bindable(true), 
18            Category("Appearance"), 
19            DefaultValue("")] 
20        /**//// <summary> 
21        /// 將此控制項呈現給指定的輸出參數。
22        /// </summary>
23        /// <param name="output"> 要寫出到的 HTML 編寫器 </param>
24        protected override void Render(HtmlTextWriter output)
25        {
26            try
27            {
28                if(isflashad==true)
29                {
30                    StringBuilder sb=new StringBuilder("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"");
31                    sb.Append("codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width={0} height={1}>");
32                    sb.Append("<param name=\"movie\" value={2} />");
33                    sb.Append("<param name=\"quality\" value=\"high\"/>");
34                    sb.Append("<embed src={3} quality=\"high\"");
35                    sb.Append("pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width={4} height={5}></embed></object>");
36                    StringBuilder outstr=new StringBuilder();
37                    outstr.AppendFormat(sb.ToString(),this.Width,this.Height,this.imgurl,this.imgurl,this.Width,this.Height);
38                    output.Write(outstr);
39                }
40                if(isflashad==false)
41                {
42                    //this.Render(output);
43                    base.Render (output);
44                }
45            }
46            catch
47            {
48                StringBuilder sb=new StringBuilder("<table><tr>廣告媒體不存在<td></td></tr><table>");
49                output.Write(sb);
50            }
51        }
52        protected override void OnAdCreated(AdCreatedEventArgs e)
53        {
54            if(e.ImageUrl.ToLower().IndexOf(".swf")!=-1)
55            {
56                this.isflashad=true;
57                this.imgurl=e.ImageUrl;
58            }
59            else
60            {
61                this.isflashad=false;
62            }
63        }
64    }
65}
66

vs內建的AdRotator 不支援flash顯示,而我又要用到這個功能,在網上搜羅了一陣,找到一個老外寫的vb版本的,地址為:http://www.dnzone.com/ShowDetail.asp?NewsId=901。但我的項目都是用C#做的,索性自己改成C#的,思路是按照老外的走的,很簡單的東西,這也是我第一個控制項,談不上原創,但是C#版的這個網上我還是沒有找到。呵呵。編譯環境 vs2003+window server 2003 。源碼我已經測試通過。
  關於怎麼使用的問題我就不說了,希望大家多多探討!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.