3 * Namespace : System.Web.UI.MobileControls
5 * Author : Gaurav Vaish
7 * Copyright : 2003 with Gaurav Vaish, and with
11 using System.Collections;
13 using System.Web.Mobile;
15 namespace System.Web.UI.MobileControls
17 public class Panel : MobileControl, ITemplateable
19 private Panel deviceSpecificContent;
20 private bool paginationStateChanged = false;
26 public override bool BreakAfter
30 return base.BreakAfter;
34 base.BreakAfter = value;
38 protected override bool PaginateChildren
46 public virtual bool Paginate
50 object o = ViewState["Paginate"];
57 bool oldPaginate = Paginate;
58 ViewState["Paginate"] = value;
59 if(IsTrackingViewState)
61 PaginationStateChanged = true;
62 if(oldPaginate && !value)
63 MobileControl.SetControlPageRecursive(this, 1);
72 return deviceSpecificContent;
76 internal bool PaginationStateChanged
80 return paginationStateChanged;
84 paginationStateChanged = value;
88 public override void AddLinkedForms(IList linkedForms)
92 foreach(Control current in Controls)
94 if(current is MobileControl)
95 ((MobileControl)current).AddLinkedForms(linkedForms);
99 if(linkedForms.GetEnumerator() is IDisposable)
100 ((IDisposable)linkedForms.GetEnumerator()).Dispose();
104 public override void CreateDefaultTemplatedUI(bool doDataBind)
106 ITemplate contentTmpl = GetTemplate(Constants.ContentTemplateTag);
107 if(contentTmpl != null)
109 deviceSpecificContent = new TemplateContainer();
110 contentTmpl.InstantiateIn(this);
111 Controls.AddAt(0, deviceSpecificContent);
115 public override void PaginateRecursive(ControlPager pager)
119 if(Paginate && Content != null)
121 Content.Paginate = true;
122 Content.PaginateRecursive(pager);
123 FirstPage = Content.FirstPage;
124 LastPage = pager.PageCount;
125 base.PaginateRecursive(pager);
130 protected override void OnInit(EventArgs e)
135 ClearChildViewState();
136 CreateTemplatedUI(false);
137 ChildControlsCreated = true;