AdRotator.Render メソッド



AdRotator.Render メソッド
アセンブリ: System.Web (system.web.dll 内)



カスタム サーバー コントロールの Render メソッドをオーバーライドし、XML ファイルのランダムな広告にリンクとイメージを付けて AdRotator に表示されるようにします。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %> <%@ Page Language="VB" AutoEventWireup="True" %> <HTML> <HEAD> <title>Custom AdRotator - Render - VB.NET Example</title> </HEAD> <body> <form id="Form1" method="post" runat="server"> <h3>Custom AdRotator - Render - VB.NET Example</h3> <aspSample:CustomADRotatorRender id="CustomAdRotator1" runat="server" Target="_blank" AdvertisementFile="~/App_Data/Ads.xml" /> </form> </body> </HTML> <br /><span space="preserve">...</span><br /> <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _ Public NotInheritable Class CustomADRotatorRender Inherits System.Web.UI.WebControls.AdRotator Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) Dim navigateUrl As String = System.String.Empty Dim imageUrl As String = System.String.Empty Dim alternateText As String = System.String.Empty ' If the value for the Advertisement File is not empty. If Me.AdvertisementFile.Length > 0 Then ' Get a random ad. GetRandomAd(imageUrl, navigateUrl, alternateText) End If ' Create and render a new HyperLink Web control. Dim bannerLink As New System.Web.UI.WebControls.HyperLink Dim key As String For Each key In Me.Attributes.Keys bannerLink.Attributes(key) = Me.Attributes(key) Next key If Not (Me.ID Is Nothing) AndAlso Me.ID.Length > 0 Then bannerLink.ID = Me.ClientID End If bannerLink.NavigateUrl = navigateUrl bannerLink.Target = Me.Target bannerLink.AccessKey = Me.AccessKey bannerLink.Enabled = Me.Enabled bannerLink.TabIndex = Me.TabIndex bannerLink.RenderBeginTag(writer) ' Create and render a new Image Web control. Dim bannerImage As New System.Web.UI.WebControls.Image If ControlStyleCreated Then bannerImage.ApplyStyle(Me.ControlStyle) End If bannerImage.AlternateText = alternateText bannerImage.ImageUrl = imageUrl bannerImage.ToolTip = Me.ToolTip bannerImage.RenderControl(writer) bannerLink.RenderEndTag(writer) End Sub Private Sub GetRandomAd(ByRef imageUrl As String, ByRef navigateUrl As String, ByRef alternateText As String) ' Default output parameters values to empty string imageUrl = System.String.Empty navigateUrl = System.String.Empty alternateText = System.String.Empty ' Get the Ads from an XML file. Dim dataSet As New System.Data.DataSet Dim physicalPath As String = MapPathSecure(Me.AdvertisementFile) dataSet.ReadXml(physicalPath, System.Data.XmlReadMode.InferSchema) ' If Ads were found in the XML File. Dim totalAds As Integer = dataSet.Tables(0).Rows.Count If totalAds > 0 Then ' Select a random Ad. Dim randomNumber As New System.Random Dim selectedAdIndex As Integer = randomNumber.Next(totalAds) ' Output the random Ad's values. imageUrl = dataSet.Tables(0).Rows(selectedAdIndex).ItemArray(0).ToString() navigateUrl = dataSet.Tables(0).Rows(selectedAdIndex).ItemArray(1).ToString() alternateText = dataSet.Tables(0).Rows(selectedAdIndex).ItemArray(2).ToString() End If End Sub End Class
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %> <%@ Page Language="C#" AutoEventWireup="True" %> <HTML> <HEAD> <title>Custom AdRotator - Render - C# Example</title> </HEAD> <body> <form id="Form1" method="post" runat="server"> <h3>Custom AdRotator - Render - C# Example</h3> <aspSample:CustomADRotatorRender id="CustomAdRotator1" runat="server" Target="_blank" AdvertisementFile="~/App_Data/Ads.xml" /> </form> </body> </HTML> <br /><span space="preserve">...</span><br />namespace Samples.AspNet.CS.Controls { [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] public class CustomADRotatorRender : System.Web.UI.WebControls.AdRotator { private const string ApplicationCachePrefix = "CustomAdRotatorCache: "; protected override void Render(System.Web.UI.HtmlTextWriter writer) { string navigateUrl = System.String.Empty; string imageUrl = System.String.Empty; string alternateText = System.String.Empty; // If the value for the Advertisement File is not empty. if (this.AdvertisementFile.Length > 0 ) { // Get a random ad. GetRandomAd(out imageUrl, out navigateUrl, out alternateText); } // Create and render a new HyperLink Web control. System.Web.UI.WebControls.HyperLink bannerLink = new System.Web.UI.WebControls.HyperLink(); foreach(string key in this.Attributes.Keys) { bannerLink.Attributes[key] = this.Attributes[key]; } if (this.ID != null && this.ID.Length > 0) { bannerLink.ID = this.ClientID; } bannerLink.NavigateUrl = navigateUrl; bannerLink.Target = this.Target; bannerLink.AccessKey = this.AccessKey; bannerLink.Enabled = this.Enabled; bannerLink.TabIndex = this.TabIndex; bannerLink.RenderBeginTag(writer); // Create and render a new Image Web control. System.Web.UI.WebControls.Image bannerImage = new System.Web.UI.WebControls.Image(); if (ControlStyleCreated) { bannerImage.ApplyStyle(this.ControlStyle); } bannerImage.AlternateText = alternateText; bannerImage.ImageUrl = imageUrl; bannerImage.ToolTip = this.ToolTip; bannerImage.RenderControl(writer); bannerLink.RenderEndTag(writer); } private void GetRandomAd(out string imageUrl, out string navigateUrl, out string alternateText) { // Default output parameters values. imageUrl = System.String.Empty; navigateUrl = System.String.Empty; alternateText = System.String.Empty; // Try to get the Ads DataSet from the ASP.NET cache. string physicalPath = MapPathSecure(this.AdvertisementFile); string fileKey = ApplicationCachePrefix + physicalPath; System.Web.Caching.Cache cache = System.Web.HttpContext.Current.Cache; System.Data.DataSet dataSet = cache[fileKey] as System.Data.DataSet; // If the Ads DataSet was not found in the ASP.NET cache. if (dataSet == null) { // Get the Ads from an XML file. dataSet = new System.Data.DataSet(); dataSet.ReadXml(physicalPath, System.Data.XmlReadMode.InferSchema); // Insert the DataSet into the Cache. // Make sure your AntiVirus software doesn't touch the XMLf file, // or else the cache will be empty each time the Render method gets called. cache.Insert(fileKey, dataSet, new System.Web.Caching.CacheDependency(physicalPath)); } // If Ads were found in the XML File. int totalAds = dataSet.Tables[0].Rows.Count; if (totalAds > 0) { // Select a random Ad. System.Random randomNumber = new System.Random(); int selectedAdIndex = randomNumber.Next(totalAds); // Output the random Ad's values. imageUrl = dataSet.Tables[0].Rows[selectedAdIndex].ItemArray[0].ToString(); navigateUrl = dataSet.Tables[0].Rows[selectedAdIndex].ItemArray[1].ToString(); alternateText = dataSet.Tables[0].Rows[selectedAdIndex].ItemArray[2].ToString(); } } } }
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL.Controls" Assembly="Samples.AspNet.JSL" %> <%@ Page Language="VJ#" AutoEventWireup="True" %> <HTML> <HEAD> <title>Custom AdRotator - Render - VJ# Example</title> </HEAD> <body> <form id="Form1" method="post" runat="server"> <h3>Custom AdRotator - Render - VJ# Example</h3> <aspSample:CustomADRotatorRender id="CustomAdRotator1" runat="server" Target="_blank" AdvertisementFile="~/App_Data/Ads.xml" /> </form> </body> </HTML> <br /><span space="preserve">...</span><br />package Samples.AspNet.JSL.Controls; import System.Collections.*; ///** @attribute System.Security.Permissions.PermissionSet( // System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust") //d */ public class CustomADRotatorRender extends System.Web.UI.WebControls.AdRotator { private String applicationCachePrefix = "CustomAdRotatorCache: "; protected void Render(System.Web.UI.HtmlTextWriter writer) { String navigateUrl = ""; String imageUrl = ""; String alternateText = ""; // If the value for the Advertisement File is not empty. if (this.get_AdvertisementFile().get_Length() > 0) { // Get a random ad. GetRandomAd(imageUrl, navigateUrl, alternateText); } // Create and render a new HyperLink Web control. System.Web.UI.WebControls.HyperLink bannerLink = new System.Web.UI.WebControls.HyperLink(); IEnumerator myEnum = this.get_Attributes().get_Keys().GetEnumerator(); while (myEnum.MoveNext()) { String key = myEnum.get_Current().ToString(); bannerLink.get_Attributes().set_Item(key, this.get_Attributes().get_Item(key)); } if (this.get_ID() != null && this.get_ID().get_Length() > 0) { bannerLink.set_ID(this.get_ClientID()); } bannerLink.set_NavigateUrl(navigateUrl); bannerLink.set_Target(this.get_Target()); bannerLink.set_AccessKey(this.get_AccessKey()); bannerLink.set_Enabled(this.get_Enabled()); bannerLink.set_TabIndex(this.get_TabIndex()); bannerLink.RenderBeginTag(writer); // Create and render a new Image Web control. System.Web.UI.WebControls.Image bannerImage = new System.Web.UI.WebControls.Image(); if (get_ControlStyleCreated()) { bannerImage.ApplyStyle(this.get_ControlStyle()); } bannerImage.set_AlternateText(alternateText); bannerImage.set_ImageUrl(imageUrl); bannerImage.set_ToolTip(this.get_ToolTip()); bannerImage.RenderControl(writer); bannerLink.RenderEndTag(writer); } //Render private void GetRandomAd(String imageUrl, String navigateUrl, String alternateText) { // Default output parameters values. imageUrl = ""; navigateUrl = ""; alternateText = ""; // Try to get the Ads DataSet from the ASP.NET cache. String physicalPath = MapPathSecure(this.get_AdvertisementFile()); String fileKey = applicationCachePrefix + physicalPath; System.Web.Caching.Cache cache = System.Web.HttpContext.get_Current().get_Cache(); System.Data.DataSet dataSet = (System.Data.DataSet)cache.get_Item(fileKey); // If the Ads DataSet was not found in the ASP.NET cache. if (dataSet == null) { // Get the Ads from an XML file. dataSet = new System.Data.DataSet(); dataSet.ReadXml(physicalPath, System.Data.XmlReadMode.InferSchema); // Insert the DataSet into the Cache. // Make sure your AntiVirus software doesn't touch the XMLf file, // or else the cache will be empty each time the Render // method gets called. cache.Insert(fileKey, dataSet, new System.Web.Caching.CacheDependency(physicalPath)); } // If Ads were found in the XML File. int totalAds = dataSet.get_Tables().get_Item(0).get_Rows().get_Count(); if (totalAds > 0) { // Select a random Ad. System.Random random = new System.Random(); int selectedAdIndex = random.Next(totalAds); // Output the random Ad's values. imageUrl = dataSet.get_Tables().get_Item(0).get_Rows(). get_Item(selectedAdIndex).get_ItemArray().get_Item(0). ToString(); navigateUrl = dataSet.get_Tables().get_Item(0).get_Rows(). get_Item(selectedAdIndex).get_ItemArray().get_Item(1). ToString(); alternateText = dataSet.get_Tables().get_Item(0).get_Rows(). get_Item(selectedAdIndex).get_ItemArray().get_Item(2). ToString(); } } //GetRandomAd } //CustomADRotatorRender

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からAdRotator.Renderを検索する場合は、下記のリンクをクリックしてください。

- AdRotator.Renderのページへのリンク