2 // System.Web.UI.DataBoundLiteralCOntrol.cs
5 // Duncan Mak (duncan@ximian.com)
6 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
8 // (C) 2002 Ximian, Inc. (http://www.ximian.com)
12 using System.ComponentModel;
15 namespace System.Web.UI {
18 public sealed class DataBoundLiteralControl : Control
20 private string [] staticLiterals;
21 private string [] dataBoundLiterals;
23 public DataBoundLiteralControl (int staticLiteralsCount,
24 int dataBoundLiteralCount)
26 staticLiterals = new string [staticLiteralsCount];
27 dataBoundLiterals = new string [dataBoundLiteralCount];
33 StringBuilder text = new StringBuilder ();
34 int stLength = staticLiterals.Length;
35 int dbLength = dataBoundLiterals.Length;
36 int max = (stLength > dbLength) ? stLength : dbLength;
37 for (int i = 0; i < max; i++){
39 text.Append (staticLiterals [i]);
41 text.Append (dataBoundLiterals [i]);
44 return text.ToString ();
48 protected override ControlCollection CreateControlCollection ()
50 return new EmptyControlCollection (this);
53 protected override void LoadViewState (object savedState)
55 if (savedState != null) {
56 Array source = (Array) savedState;
57 if (source.Length == dataBoundLiterals.Length)
58 source.CopyTo (dataBoundLiterals, 0);
62 protected override void Render (HtmlTextWriter output)
67 protected override object SaveViewState ()
69 if (dataBoundLiterals.Length == 0)
71 return dataBoundLiterals;
74 public void SetDataBoundString (int index, string s)
76 dataBoundLiterals [index] = s;
79 public void SetStaticString (int index, string s)
81 staticLiterals [index] = s;