Blog Stats
  • Posts - 15
  • Articles - 0
  • Comments - 21
  • Trackbacks - 35

 

Simple Label control

In previous post I wrote about label control that will generate "true" label tag. Here is more code for that simple control. Now you can assign control (like TextBox) which label will be for. Also AccessKey is rendered as underlined character. Happy using.

    1 using System;

    2 using System.Web.UI;

    3 using System.Web.UI.WebControls;

    4 using System.ComponentModel;

    5 using System.Text.RegularExpressions;

    6 

    7 [assembly: TagPrefix("LazyDeveloper.Web.UI.Webcontrols", "LazyDeveloper")]

    8 namespace LazyDeveloper.Web.UI.Webcontrols

    9 {

   10   [

   11     ToolboxData("<{0}:FormLabel runat=\"server\" Text=\"Label\">"),

   12     Designer("System.Web.UI.Design.WebControls.LabelDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),

   13     DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),

   14     DefaultProperty("Text"),

   15     ControlValueProperty("Text"),

   16     ParseChildren(false),

   17     ControlBuilder(typeof(LabelControlBuilder)),

   18   ]

   19   public class FormLabel : Label

   20   {

   21     protected override void RenderContents(HtmlTextWriter writer)

   22     {

   23       if (AccessKey != "")

   24       {

   25         Regex re = new Regex(AccessKey, RegexOptions.IgnoreCase | RegexOptions.Multiline);

   26         MatchCollection matches = re.Matches(Text);

   27         if (matches.Count > 0)

   28         {

   29           string aKey = matches[0].Value;

   30           Text = re.Replace(Text, "" + aKey + "", 1);

   31         }

   32       }

   33       writer.Write(Text);

   34     }

   35     protected override void AddAttributesToRender(HtmlTextWriter writer)

   36     {

   37       base.AddAttributesToRender(writer);

   38       if (For != "")

   39       {

   40         writer.AddAttribute(HtmlTextWriterAttribute.For, For);

   41       }

   42     }

   43     public override void RenderBeginTag(System.Web.UI.HtmlTextWriter writer)

   44     {

   45       AddAttributesToRender(writer);

   46       writer.RenderBeginTag("label");

   47     }

   48     public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer)

   49     {

   50       writer.RenderEndTag();

   51     }

   52 

   53     [

   54       TypeConverter(typeof(ControlIDConverter)),

   55       IDReferenceProperty,

   56       Description("Label_For"),

   57       DefaultValue(""),

   58       Category("Behavior"),

   59       ThemeableAttribute (false)

   60     ]

   61     public string For

   62     {

   63       get

   64       {

   65         string forControl = (string)ViewState["For"];

   66         if (forControl != null)

   67         {

   68           return forControl;

   69         }

   70         return string.Empty;

   71       }

   72       set

   73       {

   74         ViewState["For"] = value;

   75       }

   76     }

   77   }

   78 }


Feedback

No comments posted yet.


Post a comment





 

Please add 3 and 4 and type the answer here:

 

 

Copyright © Ziemowit 'Jimmy' Skowronski