2 // Permission is hereby granted, free of charge, to any person obtaining
3 // a copy of this software and associated documentation files (the
4 // "Software"), to deal in the Software without restriction, including
5 // without limitation the rights to use, copy, modify, merge, publish,
6 // distribute, sublicense, and/or sell copies of the Software, and to
7 // permit persons to whom the Software is furnished to do so, subject to
8 // the following conditions:
10 // The above copyright notice and this permission notice shall be
11 // included in all copies or substantial portions of the Software.
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
19 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 // System.Web.UI.HtmlControls.HtmlInputHidden.cs
25 // Jackson Harper (jackson@ximian.com)
27 // (C) 2005-2010 Novell, Inc.
29 using System
.ComponentModel
;
30 using System
.Collections
.Specialized
;
31 using System
.Security
.Permissions
;
33 namespace System
.Web
.UI
.HtmlControls
{
36 [AspNetHostingPermission (SecurityAction
.LinkDemand
, Level
= AspNetHostingPermissionLevel
.Minimal
)]
37 [AspNetHostingPermission (SecurityAction
.InheritanceDemand
, Level
= AspNetHostingPermissionLevel
.Minimal
)]
39 [DefaultEvent ("ServerChange")]
40 [SupportsEventValidation
]
41 public class HtmlInputHidden
: HtmlInputControl
, IPostBackDataHandler
{
43 static readonly object ServerChangeEvent
= new object ();
45 public HtmlInputHidden () : base ("hidden")
49 bool LoadPostDataInternal (string postDataKey
, NameValueCollection postCollection
)
51 string data
= postCollection
[postDataKey
];
52 if (data
!= null && data
!= Value
) {
53 ValidateEvent (postDataKey
, String
.Empty
);
60 void RaisePostDataChangedEventInternal ()
62 OnServerChange (EventArgs
.Empty
);
65 protected virtual bool LoadPostData (string postDataKey
, NameValueCollection postCollection
)
67 return LoadPostDataInternal (postDataKey
, postCollection
);
70 protected virtual void RaisePostDataChangedEvent ()
72 RaisePostDataChangedEventInternal ();
75 bool IPostBackDataHandler
.LoadPostData (string postDataKey
,
76 NameValueCollection postCollection
)
78 return LoadPostData (postDataKey
, postCollection
);
81 void IPostBackDataHandler
.RaisePostDataChangedEvent ()
83 RaisePostDataChangedEvent ();
86 protected override void RenderAttributes (HtmlTextWriter writer
)
90 page
.ClientScript
.RegisterForEventValidation (Name
);
91 base.RenderAttributes (writer
);
94 protected internal override void OnPreRender (EventArgs e
)
99 if (page
!= null && !Disabled
) {
100 page
.RegisterRequiresPostBack (this);
101 page
.RegisterEnabledControl (this);
105 protected virtual void OnServerChange (EventArgs e
)
107 EventHandler handler
= (EventHandler
) Events
[ServerChangeEvent
];
112 [WebSysDescription("")]
113 [WebCategory("Action")]
114 public event EventHandler ServerChange
{
115 add { Events.AddHandler (ServerChangeEvent, value); }
116 remove { Events.RemoveHandler (ServerChangeEvent, value); }