Hi-Fi優質I.T網:.Net ?嚙踝??桀??forum_id=50-討論區
您尚未登入...
帳號:
密碼:

忘記密碼 
 
  訂閱電子報

取消   訂閱
 
討論區>>.Net ?嚙踝??桀??forum_id=50<<

 
 
發起人:
admin
中級會員
張貼時間:2006/01/26-13:29:51
   檢舉

 主題:在 Run Time 選取 AdRotator Web 伺服器控制項中的廣告

您可以在 AdCreated 事件處理常式中,建立自訂邏輯以動態選取廣告。如果您的專案中具有一個以上的 AdRotator 控制項,您最好建立一個全域事件處理常式,用來回應所有的 AdRotator 控制項。如此一來,在每個控制項中循環執行廣告的邏輯就可由相同的事件處理。

若要使用 AdCreated 事件來選取廣告

建立控制項的 AdCreated 事件處理常式。
處理常式中傳遞的第二個參數包含到所建立廣告的參考。

設定這個廣告物件的屬性來指定要部署的影像及廣告的巡覽 URL。
下列範例說明如何在 AdCreated 事件處理常式中,設定 AdRotator 控制項 (AdRotator1) 的 ImageUrl、NavigateUrl 和 AlternateText 屬性 (Property):

' Visual Basic
Public Sub AdRotator1_AdCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AdCreatedEventArgs) Handles AdRotator1.AdCreated
e.ImageUrl = "images/msft_ad.gif"
e.NavigateUrl = "http://www.microsoft.com/"
e.AlternateText = "Where do you want to go today?"
End Sub

// C#
protected void AdRotator1_AdCreated (object sender,
System.Web.UI.WebControls.AdCreatedEventArgs e)
{
e.ImageUrl = "images/msft_ad.gif";
e.NavigateUrl = "http://www.microsoft.com/";
e.AlternateText = "Where do you want to go today?";
}
如果您的專案中具有幾個 AdRotator 控制項,您可以在 Global.asax 檔案中建立單一的全域事件處理常式。然後每個控制項就可以使用這個事件處理常式。

若要建立全域事件處理常式來處理一個以上的 AdRotator 控制項

在 Global.asax 檔案中,為 GlobalAdCreated 事件建立事件處理常式。
以下範例將從名為 AcmeAdServer 的假設商業廣告伺服器擷取資訊,方式是將 XML Web Service (AdService) 當作 Web 參考加入專案。AdService 具有名為 GetNextAd 的方法,其中包含指定顯示哪個廣告的邏輯。

GlobalAdCreated 事件會將 AdRotator 控制項的 KeywordFilter 以關鍵字方式傳遞至 AdService.GetNextAd() 方法,然後這個方法則會從 AdInfo (在 AdService 中宣告的結構) 傳回下一個顯示廣告的 ImageUrl、NavigateUrl 及 AlternateText。每次網頁重新整理時,就會呼叫 GlobalAdCreated 事件。

' Visual Basic
Public Shared Sub GlobalAdCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AdCreatedEventArgs)

Dim ai As AcmeAdServer.AdInfo
Dim ws As New AcmeAdServer.AdService()
Dim keyword As String

keyword = CType(sender, AdRotator).KeywordFilter
ai = ws.GetNextAd(keyword)

e.ImageUrl = ai.ImageUrl
e.NavigateUrl = ai.NavigateUrl
e.AlternateText = ai.AltText

End Sub

// C#
public static void GlobalAdCreated(Object sender, System.Web.UI.WebControls.AdCreatedEventArgs e)
{
AcmeAdServer.AdInfo ai;
AcmeAdServer.AdService1 ws = new AcmeAdServer.AdService1();
String keyword;

keyword = ((AdRotator)sender).KeywordFilter;
ai = ws.GetNextAd(keyword);

e.ImageUrl = ai.ImageUrl;
e.NavigateUrl = ai.NavigateUrl;
e.AlternateText = ai.AltText;
}
在 Web Form 的載入事件中,將 AdRotator 控制項的 AdCreated 事件連結至 Global.asax 中所定義的事件處理常式。
' Visual Basic
Protected Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler AdRotator1.AdCreated, AddressOf Global.GlobalAdCreated
AddHandler AdRotator2.AdCreated, AddressOf Global.GlobalAdCreated
End Sub

// C#
protected void Page_Load(object sender, EventArgs e)
{
AdRotator1.AdCreated += new System.Web.UI.WebControls.AdCreatedEventHandler (Global.GlobalAdCreated);
AdRotator2.AdCreated += new System.Web.UI.WebControls.AdCreatedEventHandler (Global.GlobalAdCreated);
}

簽名
-===== 路是人走出來的=====-

 



 

Hi-Fi優質I.T網”站內所有文章、圖片除特別加註外均屬本站所有,如有任何問題請來信告知
請支持言論自由,討論區所發表之言論不代表本站立場
Hi-Fi優質I.T網”版權所有2004©
---最佳顯示效果1024*768---