1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
//How to set the _control
//------------------------------------------------------------------------------
// <copyright file="ControlAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.UI.Adapters {
using System;
using System.ComponentModel;
using System.Security.Permissions;
/* Defines the properties, methods, and events shared by all server control
* adapters in the Web Forms page framework.
*/
public abstract class ControlAdapter {
private HttpBrowserCapabilities _browser = null;
internal Control _control; //control associated with this adapter
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
protected Control Control {
get {
return _control;
}
}
/* Indicates the page on which the associated control resides.
*/
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
protected Page Page {
get {
if(Control != null)
return Control.Page;
return null;
}
}
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
protected PageAdapter PageAdapter {
get {
if(Control != null && Control.Page != null)
return Control.Page.PageAdapter;
return null;
}
}
protected HttpBrowserCapabilities Browser {
get {
if (_browser == null) {
if (Page.RequestInternal != null) {
_browser = Page.RequestInternal.Browser;
}
else {
/* VSWhidbey 83667: In post-cache substitution, Page.Request
* would not be available. Then we try to
* use the more expensive way to access the current
* context and get the request handle.
*/
HttpContext context = HttpContext.Current;
if (context != null && context.Request != null) {
_browser = context.Request.Browser;
}
}
}
return _browser;
}
}
protected internal virtual void OnInit(EventArgs e) {
Control.OnInit(e);
}
protected internal virtual void OnLoad(EventArgs e) {
Control.OnLoad(e);
}
protected internal virtual void OnPreRender(EventArgs e) {
Control.OnPreRender(e);
}
protected internal virtual void Render(HtmlTextWriter writer) {
//
if(_control != null) {
_control.Render(writer);
}
}
protected virtual void RenderChildren(HtmlTextWriter writer) {
if(_control != null) {
_control.RenderChildren(writer);
}
}
protected internal virtual void OnUnload(EventArgs e) {
Control.OnUnload(e);
}
protected internal virtual void BeginRender(HtmlTextWriter writer) {
writer.BeginRender();
}
protected internal virtual void CreateChildControls() {
Control.CreateChildControls();
}
protected internal virtual void EndRender(HtmlTextWriter writer) {
writer.EndRender();
}
protected internal virtual void LoadAdapterControlState(object state) {
}
protected internal virtual void LoadAdapterViewState(object state) {
}
protected internal virtual object SaveAdapterControlState() {
return null;
}
protected internal virtual object SaveAdapterViewState() {
return null;
}
}
}
|