* Parameter.cs:
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / Label.cs
1 //
2 // System.Web.UI.WebControls.Label.cs
3 //
4 // Authors:
5 //   Gaurav Vaish (gvaish@iitk.ac.in)
6 //   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
7 //
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
10 //
11 \r
12 using System;\r
13 using System.ComponentModel;
14 using System.ComponentModel.Design;\r
15 using System.Web;\r
16 using System.Web.UI;\r
17 \r
18 namespace System.Web.UI.WebControls\r
19 {\r
20         [DefaultProperty("Text")]\r
21         [Designer("System.Web.UI.Design.WebControls.LabelDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]\r
22         [DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, " + Consts.AssemblySystem_Design)]\r
23         [ControlBuilder(typeof(LabelControlBuilder))] \r
24         [ParseChildren(false)]\r
25         [ToolboxData("<{0}:Label runat=\"server\">Label</{0}:Label>")]\r
26         public class Label : WebControl\r
27         {\r
28                 public Label (): base ()\r
29                 {\r
30                 }\r
31 \r
32                 internal Label (HtmlTextWriterTag tagKey) : base (tagKey)\r
33                 {\r
34                 }\r
35
36                 [DefaultValue (""), Bindable (true), WebCategory ("Appearance")]
37                 [PersistenceMode (PersistenceMode.InnerDefaultProperty)]
38                 [WebSysDescription ("The text that should be shown on this Label.")]\r
39                 public virtual string Text\r
40                 {\r
41                         get {\r
42                                 object o = ViewState ["Text"];\r
43                                 return (o == null) ? String.Empty : (string) o;\r
44                         }\r
45 \r
46                         set { ViewState ["Text"] = value; }\r
47                 }\r
48 \r
49                 protected override void AddParsedSubObject (object obj)\r
50                 {\r
51                         if(HasControls ()){\r
52                                 base.AddParsedSubObject (obj);\r
53                                 return;\r
54                         }\r
55 \r
56                         if(obj is LiteralControl){\r
57                                 Text = ((LiteralControl) obj).Text;\r
58                                 return;\r
59                         }\r
60 \r
61                         if(Text.Length > 0){\r
62                                 base.AddParsedSubObject (new LiteralControl (Text));\r
63                                 Text = String.Empty;\r
64                         }\r
65 \r
66                         base.AddParsedSubObject (obj);\r
67                 }\r
68 \r
69                 protected override void LoadViewState (object savedState)\r
70                 {\r
71                         if(savedState != null) {\r
72                                 base.LoadViewState (savedState);\r
73                                 string savedText = ViewState ["Text"] as string;\r
74                                 if(savedText != null)\r
75                                         Text = savedText;\r
76                         }\r
77                 }\r
78 \r
79                 protected override void RenderContents (HtmlTextWriter writer)\r
80                 {\r
81                         if(HasControls ())\r
82                                 base.RenderContents (writer);\r
83                         else\r
84                                 writer.Write (Text);\r
85                 }\r
86         }\r
87 }\r