<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.Net%2FUser_Control_and_Master_Page%2FWebControl</id>
		<title>ASP.Net/User Control and Master Page/WebControl - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.Net%2FUser_Control_and_Master_Page%2FWebControl"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/User_Control_and_Master_Page/WebControl&amp;action=history"/>
		<updated>2026-04-29T18:59:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.Net/User_Control_and_Master_Page/WebControl&amp;diff=2425&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/User_Control_and_Master_Page/WebControl&amp;diff=2425&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.Net/User_Control_and_Master_Page/WebControl&amp;diff=2426&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/User_Control_and_Master_Page/WebControl&amp;diff=2426&amp;oldid=prev"/>
				<updated>2010-05-26T11:53:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Bindable user control (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;c#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
  void Page_Load(object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    listControl.DataSource = new String[] {&amp;quot;Test 1&amp;quot;, &amp;quot;Test 2&amp;quot;, &amp;quot;Test 3&amp;quot;};&lt;br /&gt;
    listControl.DataBind();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt; &lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Default&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;Control:CustomBulletedList  id=&amp;quot;listControl&amp;quot; runat=&amp;quot;server&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Text;&lt;br /&gt;
namespace Control&lt;br /&gt;
{&lt;br /&gt;
  [DefaultProperty(&amp;quot;DataSource&amp;quot;),&lt;br /&gt;
  ToolboxData(&amp;quot;&amp;lt;{0}:CustomBulletedList runat=\&amp;quot;server\&amp;quot;&amp;gt;&amp;lt;/{0}:CustomBulletedList&amp;gt;&amp;quot;)]&lt;br /&gt;
  public class CustomBulletedList : System.Web.UI.WebControls.WebControl&lt;br /&gt;
  {&lt;br /&gt;
    private StringBuilder _html  = new StringBuilder();&lt;br /&gt;
    private IEnumerable  _dataSource;&lt;br /&gt;
    [Bindable(true),&lt;br /&gt;
    Category(&amp;quot;Data&amp;quot;),&lt;br /&gt;
    DefaultValue(null),&lt;br /&gt;
    Description(&amp;quot;The data source used to build up the bulleted list.&amp;quot;),&lt;br /&gt;
    DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]&lt;br /&gt;
    public IEnumerable DataSource {&lt;br /&gt;
      get {&lt;br /&gt;
        return _dataSource;&lt;br /&gt;
      }&lt;br /&gt;
      set {&lt;br /&gt;
        _dataSource = value;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    private void CreateBulletedList()&lt;br /&gt;
    {&lt;br /&gt;
      IEnumerable dataSource = null;&lt;br /&gt;
      try {&lt;br /&gt;
        dataSource = this._dataSource;&lt;br /&gt;
      } catch {&lt;br /&gt;
        dataSource = null;&lt;br /&gt;
      }&lt;br /&gt;
      if (dataSource != null)&lt;br /&gt;
      {&lt;br /&gt;
        _html.Append(&amp;quot;&amp;lt;ul&amp;gt;&amp;quot;);&lt;br /&gt;
        foreach (object dataObject in dataSource)&lt;br /&gt;
        {&lt;br /&gt;
          _html.Append(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;);&lt;br /&gt;
          _html.Append(dataObject.ToString());&lt;br /&gt;
          _html.Append(&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        _html.Append(&amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    public override void DataBind()&lt;br /&gt;
    {&lt;br /&gt;
      base.OnDataBinding(EventArgs.Empty);&lt;br /&gt;
      CreateBulletedList();&lt;br /&gt;
    }&lt;br /&gt;
    protected override void Render(HtmlTextWriter output)&lt;br /&gt;
    {&lt;br /&gt;
      output.Write(_html);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bindable user control (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;VB&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;vb&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)&lt;br /&gt;
  listControl.DataSource = New String() {&amp;quot;Test 1&amp;quot;, &amp;quot;Test 2&amp;quot;, &amp;quot;Test 3&amp;quot;}&lt;br /&gt;
  listControl.DataBind()&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Creating a Databound Control&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;Control:CustomBulletedList id=&amp;quot;listControl&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.vb&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Web.UI&lt;br /&gt;
Imports System.Web.UI.WebControls&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Imports System.Text&lt;br /&gt;
Namespace Control&lt;br /&gt;
    Public Class CustomBulletedList&lt;br /&gt;
        Inherits System.Web.UI.WebControls.WebControl&lt;br /&gt;
        Private _html As New StringBuilder()&lt;br /&gt;
        Private _dataSource As IEnumerable&lt;br /&gt;
        Public Property DataSource() As IEnumerable&lt;br /&gt;
            Get&lt;br /&gt;
                Return _dataSource&lt;br /&gt;
            End Get&lt;br /&gt;
            Set(ByVal value As IEnumerable)&lt;br /&gt;
                _dataSource = value&lt;br /&gt;
            End Set&lt;br /&gt;
        End Property&lt;br /&gt;
        Private Sub CreateBulletedList()&lt;br /&gt;
            Dim dataSource As IEnumerable = Nothing&lt;br /&gt;
            Try&lt;br /&gt;
                dataSource = Me._dataSource&lt;br /&gt;
            Catch&lt;br /&gt;
            End Try&lt;br /&gt;
            If Not (dataSource Is Nothing) Then&lt;br /&gt;
                _html.Append(&amp;quot;&amp;lt;ul&amp;gt;&amp;quot;)&lt;br /&gt;
                Dim dataObject As Object&lt;br /&gt;
                For Each dataObject In dataSource&lt;br /&gt;
                    _html.Append(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)&lt;br /&gt;
                    _html.Append(dataObject)&lt;br /&gt;
                    _html.Append(&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;)&lt;br /&gt;
                Next dataObject&lt;br /&gt;
                _html.Append(&amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;)&lt;br /&gt;
            End If&lt;br /&gt;
        End Sub&lt;br /&gt;
&lt;br /&gt;
        Public Overrides Sub DataBind()&lt;br /&gt;
            MyBase.OnDataBinding(EventArgs.Empty)&lt;br /&gt;
            CreateBulletedList()&lt;br /&gt;
        End Sub&lt;br /&gt;
&lt;br /&gt;
        Protected Overrides Sub Render(ByVal output As HtmlTextWriter)&lt;br /&gt;
            output.Write(_html)&lt;br /&gt;
        End Sub&lt;br /&gt;
    End Class&lt;br /&gt;
End Namespace&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SimpleControl extendsing System.Web.UI.WebControls.WebControl==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;C#&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
void Page_Load(object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
  if (!IsPostBack)&lt;br /&gt;
  {&lt;br /&gt;
    Random rand = new Random();&lt;br /&gt;
    SimpleControl1.Text = rand.Next(1,100).ToString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Control:SimpleControl id=&amp;quot;SimpleControl1&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;asp:linkbutton text=&amp;quot;PostBack test&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
      Values are not maintained across postbacks. &amp;lt;a href=&amp;quot;Control.aspx&amp;quot;&amp;gt;Re-load&amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.cs&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
namespace Control&lt;br /&gt;
{&lt;br /&gt;
  [DefaultProperty(&amp;quot;Text&amp;quot;), ToolboxData(&amp;quot;&amp;lt;{0}:Control runat=server&amp;gt;&amp;lt;/{0}:Control&amp;gt;&amp;quot;)]&lt;br /&gt;
  public class SimpleControl : System.Web.UI.WebControls.WebControl&lt;br /&gt;
  {&lt;br /&gt;
    private string _text;&lt;br /&gt;
  &lt;br /&gt;
    [Bindable(true), &lt;br /&gt;
      Category(&amp;quot;Appearance&amp;quot;), &lt;br /&gt;
      DefaultValue(&amp;quot;&amp;quot;)] &lt;br /&gt;
    public string Text &lt;br /&gt;
    {&lt;br /&gt;
      get&lt;br /&gt;
      {&lt;br /&gt;
        return _text;&lt;br /&gt;
      }&lt;br /&gt;
      set&lt;br /&gt;
      {&lt;br /&gt;
        _text = value;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    protected override void Render(HtmlTextWriter output)&lt;br /&gt;
    {&lt;br /&gt;
      output.Write(Text);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SimpleControl extendsing System.Web.UI.WebControls.WebControl (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page language=&amp;quot;VB&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
Sub Page_Load(Sender As Object, E As EventArgs)&lt;br /&gt;
  If Not IsPostBack Then&lt;br /&gt;
    Dim RandomGenerator As Random&lt;br /&gt;
    RandomGenerator = New Random()&lt;br /&gt;
    SimpleControl1.Text = RandomGenerator.Next(1,100)&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Default&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Control:SimpleControl id=&amp;quot;SimpleControl1&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;asp:linkbutton text=&amp;quot;PostBack test&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
        Values are not maintained across postbacks. &amp;lt;a href=&amp;quot;Control.aspx&amp;quot;&amp;gt;Re-load&amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.vb&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Imports System.Web.UI&lt;br /&gt;
Namespace Control&lt;br /&gt;
    &amp;lt;DefaultProperty(&amp;quot;Text&amp;quot;), ToolboxData(&amp;quot;&amp;lt;{0}:Control runat=server&amp;gt;&amp;lt;/{0}:Control&amp;gt;&amp;quot;)&amp;gt; Public Class SimpleControl&lt;br /&gt;
        Inherits System.Web.UI.WebControls.WebControl&lt;br /&gt;
        Dim _text As String&lt;br /&gt;
        &amp;lt;Bindable(True), Category(&amp;quot;Appearance&amp;quot;), DefaultValue(&amp;quot;&amp;quot;)&amp;gt; Property [Text]() As String&lt;br /&gt;
            Get&lt;br /&gt;
                Return _text&lt;br /&gt;
            End Get&lt;br /&gt;
            Set(ByVal Value As String)&lt;br /&gt;
                _text = Value&lt;br /&gt;
            End Set&lt;br /&gt;
        End Property&lt;br /&gt;
        Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)&lt;br /&gt;
            output.Write([Text])&lt;br /&gt;
        End Sub&lt;br /&gt;
    End Class&lt;br /&gt;
End Namespace&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==User control based on System.Web.UI.WebControls.Label (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Custom Controls - Extending Existing Web Controls&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Control:RainbowLabel text=&amp;quot;This is a rainbow colored test string&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;Control:RainbowLabel EnableRainbowMode=&amp;quot;false&amp;quot; text=&amp;quot;This is a test string&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
namespace Control&lt;br /&gt;
{&lt;br /&gt;
  [ToolboxData(&amp;quot;&amp;lt;{0}:RainbowLabel runat=server&amp;gt;&amp;lt;/{0}:RainbowLabel&amp;gt;&amp;quot;)]&lt;br /&gt;
  public class RainbowLabel : System.Web.UI.WebControls.Label&lt;br /&gt;
  {&lt;br /&gt;
    public bool EnableRainbowMode&lt;br /&gt;
    {&lt;br /&gt;
      get { return (ViewState[&amp;quot;EnableRainbowMode&amp;quot;] == null)? true : bool.Parse( ViewState[&amp;quot;EnableRainbowMode&amp;quot;].ToString() ); }&lt;br /&gt;
      set { ViewState[&amp;quot;EnableRainbowMode&amp;quot;] = value; }&lt;br /&gt;
    }&lt;br /&gt;
    protected override void Render(HtmlTextWriter output)&lt;br /&gt;
    {&lt;br /&gt;
      if (EnableRainbowMode)&lt;br /&gt;
        output.Write( ColorizeString(Text) );&lt;br /&gt;
      else&lt;br /&gt;
        output.Write(Text);&lt;br /&gt;
    }&lt;br /&gt;
    private string ColorizeString(string input)&lt;br /&gt;
    {&lt;br /&gt;
      System.Text.StringBuilder output = new System.Text.StringBuilder(input.Length);&lt;br /&gt;
      Random rand = new Random(DateTime.Now.Millisecond);&lt;br /&gt;
      for (int i = 0; i &amp;lt; input.Length; i++)&lt;br /&gt;
      {&lt;br /&gt;
        int red = rand.Next(0, 255);&lt;br /&gt;
        int green = rand.Next(0, 255);&lt;br /&gt;
        int blue = rand.Next(0, 255);&lt;br /&gt;
        output.Append(&amp;quot;&amp;lt;font color=\&amp;quot;#&amp;quot;);&lt;br /&gt;
        output.Append( Convert.ToString(red, 16) );&lt;br /&gt;
        output.Append( Convert.ToString(green, 16) );&lt;br /&gt;
        output.Append( Convert.ToString(blue, 16) );&lt;br /&gt;
        output.Append(&amp;quot;\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        output.Append( input.Substring(i, 1) );&lt;br /&gt;
        output.Append(&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      return output.ToString();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==User control based on System.Web.UI.WebControls.Label (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ Page language=&amp;quot;VB&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;Control&amp;quot; Namespace=&amp;quot;Control&amp;quot; Assembly=&amp;quot;Control&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Extending Existing Web Controls&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Control:RainbowLabel text=&amp;quot;This is a rainbow colored test string&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;Control:RainbowLabel EnableRainbowMode=&amp;quot;false&amp;quot; text=&amp;quot;This is a test string&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Control.vb&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Web.UI&lt;br /&gt;
Imports System.Web.UI.WebControls&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Namespace Control&lt;br /&gt;
    Public Class RainbowLabel&lt;br /&gt;
        Inherits System.Web.UI.WebControls.Label&lt;br /&gt;
        Public Property EnableRainbowMode() As Boolean&lt;br /&gt;
            Get&lt;br /&gt;
                If ViewState(&amp;quot;EnableRainbowMode&amp;quot;) Is Nothing Then&lt;br /&gt;
                    Return True&lt;br /&gt;
                Else&lt;br /&gt;
                    Return Boolean.Parse(CStr(ViewState(&amp;quot;EnableRainbowMode&amp;quot;)))&lt;br /&gt;
                End If&lt;br /&gt;
            End Get&lt;br /&gt;
            Set(ByVal Value As Boolean)&lt;br /&gt;
                ViewState(&amp;quot;EnableRainbowMode&amp;quot;) = Value&lt;br /&gt;
            End Set&lt;br /&gt;
        End Property&lt;br /&gt;
        Protected Overrides Sub Render(ByVal output As HtmlTextWriter)&lt;br /&gt;
            If EnableRainbowMode Then&lt;br /&gt;
                output.Write(ColorizeString([Text]))&lt;br /&gt;
            Else&lt;br /&gt;
                output.Write([Text])&lt;br /&gt;
            End If&lt;br /&gt;
        End Sub &amp;quot;Render&lt;br /&gt;
        Private Function ColorizeString(ByVal input As String) As String&lt;br /&gt;
            Dim output As New System.Text.StringBuilder(input.Length)&lt;br /&gt;
            Dim rand As Random = New Random(DateTime.Now.Millisecond)&lt;br /&gt;
            Dim i As Integer&lt;br /&gt;
            For i = 0 To input.Length - 1&lt;br /&gt;
                Dim red As Integer = rand.Next(0, 255)&lt;br /&gt;
                Dim green As Integer = rand.Next(0, 255)&lt;br /&gt;
                Dim blue As Integer = rand.Next(0, 255)&lt;br /&gt;
                output.Append(&amp;quot;&amp;lt;font color=&amp;quot;&amp;quot;#&amp;quot;)&lt;br /&gt;
                output.Append(Convert.ToString(red, 16))&lt;br /&gt;
                output.Append(Convert.ToString(green, 16))&lt;br /&gt;
                output.Append(Convert.ToString(blue, 16))&lt;br /&gt;
                output.Append(&amp;quot;&amp;quot;&amp;quot;&amp;gt;&amp;quot;)&lt;br /&gt;
                output.Append(input.Substring(i, 1))&lt;br /&gt;
                output.Append(&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)&lt;br /&gt;
            Next i&lt;br /&gt;
            Return output.ToString()&lt;br /&gt;
        End Function &amp;quot;ColorizeString&lt;br /&gt;
    End Class &amp;quot;RainbowLabel&lt;br /&gt;
End Namespace&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>