File: ContentRotator.cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace myControls
{
[ParseChildren(false)]
public class ContentRotator : WebControl
{
protected override void AddParsedSubObject(object obj)
{
if (obj is Content)
base.AddParsedSubObject(obj);
}
protected override void RenderContents(HtmlTextWriter writer)
{
Random rnd = new Random();
int index = rnd.Next(this.Controls.Count);
this.Controls[index].RenderControl(writer);
}
}
public class Content : Control
{
}
}
File: Default.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="custom" Namespace="myControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show ContentRotator</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<custom:ContentRotator
id="ContentRotator1"
Runat="server">
<custom:Content
id="Content1"
Runat="server">
First Content Item
</custom:Content>
<custom:Content
id="Content2"
Runat="server">
Second Content Item
<asp:Calendar
id="Calendar1"
Runat="server" />
</custom:Content>
<custom:Content
id="Content3"
Runat="server">
Third Content Item
</custom:Content>
</custom:ContentRotator>
</div>
</form>
</body>
</html>
|