You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			555 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			555 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|   | //------------------------------------------------------------------------------ | ||
|  | // <copyright file="SelectionList.cs" company="Microsoft"> | ||
|  | //     Copyright (c) Microsoft Corporation.  All rights reserved. | ||
|  | // </copyright>                                                                 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | 
 | ||
|  | using System; | ||
|  | using System.Collections; | ||
|  | using System.Collections.Specialized; | ||
|  | using System.ComponentModel; | ||
|  | using System.Diagnostics; | ||
|  | using System.Drawing; | ||
|  | using System.Drawing.Design; | ||
|  | using System.Web; | ||
|  | using System.Web.UI; | ||
|  | using System.Web.UI.WebControls; | ||
|  | using System.Web.UI.HtmlControls; | ||
|  | using System.Runtime.Serialization; | ||
|  | using System.Security.Permissions; | ||
|  | 
 | ||
|  | namespace System.Web.UI.MobileControls | ||
|  | { | ||
|  |     /* | ||
|  |      * Mobile SelectionList class. | ||
|  |      * | ||
|  |      * Copyright (c) 2000 Microsoft Corporation | ||
|  |      */ | ||
|  |     /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList"]/*' /> | ||
|  |     [ | ||
|  |         ControlBuilderAttribute(typeof(ListControlBuilder)), | ||
|  |         DefaultEvent("SelectedIndexChanged"), | ||
|  |         DefaultProperty("DataSource"), | ||
|  |         Designer(typeof(System.Web.UI.Design.MobileControls.SelectionListDesigner)), | ||
|  |         DesignerAdapter(typeof(System.Web.UI.Design.MobileControls.Adapters.DesignerSelectionListAdapter)), | ||
|  |         Editor(typeof(System.Web.UI.Design.MobileControls.SelectionListComponentEditor), typeof(ComponentEditor)), | ||
|  |         ToolboxData("<{0}:SelectionList runat=\"server\"></{0}:SelectionList>"), | ||
|  |         ToolboxItem("System.Web.UI.Design.WebControlToolboxItem, " + AssemblyRef.SystemDesign), | ||
|  |         ValidationProperty("Selection") | ||
|  |     ] | ||
|  |     [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] | ||
|  |     [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] | ||
|  |     [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] | ||
|  |     public class SelectionList : MobileControl, IPostBackDataHandler, IListControl | ||
|  |     { | ||
|  |         private static readonly Object EventItemDataBind = new Object(); | ||
|  |         private static readonly Object EventSelectedIndexChanged = new Object(); | ||
|  | 
 | ||
|  |         private ListDataHelper _dataHelper; | ||
|  |         private int _cachedSelectedIndex = -1; | ||
|  |          | ||
|  |         private ListDataHelper DataHelper { | ||
|  |             get { | ||
|  |                 if (_dataHelper == null) { | ||
|  |                     _dataHelper = new ListDataHelper(this, ViewState); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return _dataHelper; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         ///////////////////////////////////////////////////////////////////////// | ||
|  |         //  IListControl | ||
|  |         ///////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.IListControl.OnItemDataBind"]/*' /> | ||
|  |         /// <internalonly/> | ||
|  |         void IListControl.OnItemDataBind(ListDataBindEventArgs e)  | ||
|  |         { | ||
|  |             OnItemDataBind(e); | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.IListControl.TrackingViewState"]/*' /> | ||
|  |         /// <internalonly/> | ||
|  |         bool IListControl.TrackingViewState | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return IsTrackingViewState; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.DataSource"]/*' /> | ||
|  |         /// <summary> | ||
|  |         /// <para> | ||
|  |         /// Gets or sets the <see langword='DataSource'/> property of the control which is used to populate | ||
|  |         /// the items within the control. | ||
|  |         /// </para> | ||
|  |         /// </summary> | ||
|  |         [ | ||
|  |             Bindable(true), | ||
|  |             DefaultValue(null), | ||
|  |             DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), | ||
|  |             MobileCategory(SR.Category_Data), | ||
|  |             MobileSysDescription(SR.List_DataSource) | ||
|  |         ] | ||
|  |         public virtual Object DataSource  | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 return DataHelper.DataSource; | ||
|  |             } | ||
|  | 
 | ||
|  |             set  | ||
|  |             { | ||
|  |                 DataHelper.DataSource = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         private IEnumerable ResolvedDataSource | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return DataHelper.ResolvedDataSource; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.DataMember"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(false), | ||
|  |             DefaultValue(""), | ||
|  |             MobileCategory(SR.Category_Data), | ||
|  |             MobileSysDescription(SR.List_DataMember), | ||
|  |             TypeConverter(typeof(System.Web.UI.Design.MobileControls.Converters.DataMemberConverter)) | ||
|  |         ] | ||
|  |         public virtual String DataMember | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 return DataHelper.DataMember; | ||
|  |             } | ||
|  | 
 | ||
|  |             set  | ||
|  |             { | ||
|  |                 DataHelper.DataMember = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.DataTextField"]/*' /> | ||
|  |         [ | ||
|  |             DefaultValue(""), | ||
|  |             MobileCategory(SR.Category_Data), | ||
|  |             MobileSysDescription(SR.List_DataTextField), | ||
|  |             TypeConverter(typeof(System.Web.UI.Design.MobileControls.Converters.DataFieldConverter)) | ||
|  |         ] | ||
|  |         public String DataTextField  | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 return DataHelper.DataTextField; | ||
|  |             } | ||
|  |             set  | ||
|  |             { | ||
|  |                 DataHelper.DataTextField = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.DataValueField"]/*' /> | ||
|  |         [ | ||
|  |             DefaultValue(""), | ||
|  |             MobileCategory(SR.Category_Data), | ||
|  |             MobileSysDescription(SR.List_DataValueField), | ||
|  |             TypeConverter(typeof(System.Web.UI.Design.MobileControls.Converters.DataFieldConverter)) | ||
|  |         ] | ||
|  |         public String DataValueField  | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 return DataHelper.DataValueField; | ||
|  |             } | ||
|  |             set  | ||
|  |             { | ||
|  |                 DataHelper.DataValueField = value; | ||
|  |             } | ||
|  |         } | ||
|  |          | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.IsMultiSelect"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(false), | ||
|  |             Browsable(false), | ||
|  |             DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) | ||
|  |         ] | ||
|  |         public bool IsMultiSelect | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return (SelectType == ListSelectType.MultiSelectListBox  ||  | ||
|  |                         SelectType == ListSelectType.CheckBox); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.Rows"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(true), | ||
|  |             Browsable(true), | ||
|  |             DefaultValue(4), | ||
|  |             MobileCategory(SR.Category_Appearance), | ||
|  |             MobileSysDescription(SR.SelectionList_Rows) | ||
|  |         ] | ||
|  |         public int Rows | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 Object o = ViewState["Rows"]; | ||
|  |                 return o != null ? (int)o : 4; | ||
|  |             } | ||
|  |             set | ||
|  |             { | ||
|  |                 if (value < 1) | ||
|  |                 { | ||
|  |                     throw new ArgumentOutOfRangeException("value"); | ||
|  |                 } | ||
|  |                 ViewState["Rows"] = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.SelectedIndex"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(false), | ||
|  |             Browsable(false), | ||
|  |             DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) | ||
|  |         ] | ||
|  |         public int SelectedIndex  | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 for (int i = 0; i < Items.Count; i++)  | ||
|  |                 { | ||
|  |                     if (Items[i].Selected) | ||
|  |                     { | ||
|  |                         return i; | ||
|  |                     } | ||
|  |                 } | ||
|  |                 return -1; | ||
|  |             } | ||
|  |             set  | ||
|  |             { | ||
|  |                 // if we have no items, save the selectedindex | ||
|  |                 // for later databinding | ||
|  |                 if (Items.Count == 0)  | ||
|  |                 { | ||
|  |                     _cachedSelectedIndex = value; | ||
|  |                 } | ||
|  |                 else  | ||
|  |                 { | ||
|  |                     if (value < -1 || value >= Items.Count) | ||
|  |                     { | ||
|  |                         throw new ArgumentOutOfRangeException( | ||
|  |                             "SelectedIndex", | ||
|  |                             SR.GetString(SR.SelectionList_OutOfRange,value)); | ||
|  |                     } | ||
|  |                     ClearSelection(); | ||
|  |                     if (value >= 0) | ||
|  |                     { | ||
|  |                         Items[value].Selected = true; | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.Selection"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(false), | ||
|  |             Browsable(false), | ||
|  |             DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), | ||
|  |         ] | ||
|  |         public MobileListItem Selection | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 int selectedIndex = SelectedIndex; | ||
|  |                 if (selectedIndex >= 0 && selectedIndex < Items.Count) | ||
|  |                 { | ||
|  |                     return Items[selectedIndex]; | ||
|  |                 } | ||
|  |                 else | ||
|  |                 { | ||
|  |                     return null; | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.Items"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(false), | ||
|  |             DefaultValue(null), | ||
|  |             Editor(typeof(System.Web.UI.Design.MobileControls.ItemCollectionEditor), typeof(UITypeEditor)), | ||
|  |             MergableProperty(false), | ||
|  |             MobileSysDescription(SR.List_Items), | ||
|  |             PersistenceMode(PersistenceMode.InnerDefaultProperty) | ||
|  |         ] | ||
|  |         public MobileListItemCollection Items | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return DataHelper.Items; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.AddParsedSubObject"]/*' /> | ||
|  |         protected override void AddParsedSubObject(Object obj) | ||
|  |         { | ||
|  |             if (!(obj is LiteralControl)) | ||
|  |             { | ||
|  |                 if (obj is MobileListItem) | ||
|  |                 { | ||
|  |                     DataHelper.AddItem((MobileListItem)obj); | ||
|  |                     if(_cachedSelectedIndex != -1 && | ||
|  |                        DataHelper.Items.Count > _cachedSelectedIndex) | ||
|  |                     { | ||
|  |                         SelectedIndex = _cachedSelectedIndex; | ||
|  |                         _cachedSelectedIndex = -1; | ||
|  |                     } | ||
|  |                 }  | ||
|  |                 else | ||
|  |                 { | ||
|  |                     base.AddParsedSubObject(obj); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.OnPreRender"]/*' /> | ||
|  |         protected override void OnPreRender(EventArgs e)  | ||
|  |         { | ||
|  |             base.OnPreRender(e); | ||
|  |             if (Page != null && IsMultiSelect)  | ||
|  |             { | ||
|  |                 // ensure postback when no item is selected | ||
|  |                 Page.RegisterRequiresPostBack(this); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.OnDataBinding"]/*' /> | ||
|  |         protected override void OnDataBinding(EventArgs e)  | ||
|  |         { | ||
|  |             base.OnDataBinding(e); | ||
|  | 
 | ||
|  |             if (ResolvedDataSource != null) | ||
|  |             { | ||
|  |                 CreateItems(ResolvedDataSource); | ||
|  |             } | ||
|  | 
 | ||
|  |             if (_cachedSelectedIndex != -1)  | ||
|  |             { | ||
|  |                 SelectedIndex = _cachedSelectedIndex; | ||
|  |                 _cachedSelectedIndex = -1; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.CreateItems"]/*' /> | ||
|  |         protected virtual void CreateItems(IEnumerable dataSource)  | ||
|  |         { | ||
|  |             DataHelper.CreateItems(dataSource); | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.SelectedIndexChanged"]/*' /> | ||
|  |         [ | ||
|  |             MobileCategory(SR.Category_Action), | ||
|  |             MobileSysDescription(SR.SelectionList_OnSelectedIndexChanged) | ||
|  |         ] | ||
|  |         public event EventHandler SelectedIndexChanged | ||
|  |         { | ||
|  |             add  | ||
|  |             { | ||
|  |                 Events.AddHandler(EventSelectedIndexChanged, value); | ||
|  |             } | ||
|  |             remove  | ||
|  |             { | ||
|  |                 Events.RemoveHandler(EventSelectedIndexChanged, value); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.OnSelectedIndexChanged"]/*' /> | ||
|  |         protected virtual void OnSelectedIndexChanged(EventArgs e)  | ||
|  |         { | ||
|  |             EventHandler onSelectedIndexChangedHandler = (EventHandler)Events[EventSelectedIndexChanged]; | ||
|  |             if (onSelectedIndexChangedHandler != null) | ||
|  |             { | ||
|  |                 onSelectedIndexChangedHandler(this, e); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.ItemDataBind"]/*' /> | ||
|  |         [ | ||
|  |             MobileCategory(SR.Category_Action), | ||
|  |             MobileSysDescription(SR.List_OnItemDataBind) | ||
|  |         ] | ||
|  |         public event ListDataBindEventHandler ItemDataBind  | ||
|  |         { | ||
|  |             add  | ||
|  |             { | ||
|  |                 Events.AddHandler(EventItemDataBind, value); | ||
|  |             } | ||
|  |             remove  | ||
|  |             { | ||
|  |                 Events.RemoveHandler(EventItemDataBind, value); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.OnItemDataBind"]/*' /> | ||
|  |         protected virtual void OnItemDataBind(ListDataBindEventArgs e)  | ||
|  |         { | ||
|  |             ListDataBindEventHandler onItemDataBindHandler = (ListDataBindEventHandler)Events[EventItemDataBind]; | ||
|  |             if (onItemDataBindHandler != null) | ||
|  |             { | ||
|  |                 onItemDataBindHandler(this, e); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <internalonly/> | ||
|  |         protected bool LoadPostData(String postDataKey, NameValueCollection postCollection)  | ||
|  |         { | ||
|  |             bool dataChanged; | ||
|  |             bool handledByAdapter = | ||
|  |                 Adapter.LoadPostData(postDataKey, | ||
|  |                                      postCollection, | ||
|  |                                      SelectedIndicesInternal.ToArray(typeof(int)), | ||
|  |                                      out dataChanged); | ||
|  | 
 | ||
|  |             if (!handledByAdapter) | ||
|  |             { | ||
|  |                 throw new | ||
|  |                     Exception(SR.GetString(SR.SelectionList_AdapterNotHandlingLoadPostData)); | ||
|  |             } | ||
|  | 
 | ||
|  |             return dataChanged; | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <internalonly/> | ||
|  |         protected void RaisePostDataChangedEvent()  | ||
|  |         { | ||
|  |             OnSelectedIndexChanged(EventArgs.Empty); | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.SelectType"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(true), | ||
|  |             DefaultValue(ListSelectType.DropDown), | ||
|  |             MobileCategory(SR.Category_Appearance), | ||
|  |             MobileSysDescription(SR.SelectionList_SelectType) | ||
|  |         ] | ||
|  |         public ListSelectType SelectType | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 Object o = ViewState["SelectType"]; | ||
|  |                 return (o != null) ? (ListSelectType)o : ListSelectType.DropDown; | ||
|  |             } | ||
|  |             set | ||
|  |             { | ||
|  |                 ViewState["SelectType"] = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.Title"]/*' /> | ||
|  |         [ | ||
|  |             Bindable(true), | ||
|  |             DefaultValue(""), | ||
|  |             MobileCategory(SR.Category_Appearance), | ||
|  |             MobileSysDescription(SR.Input_Title) | ||
|  |         ] | ||
|  |         public String Title | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return ToString(ViewState["Title"]); | ||
|  |             } | ||
|  |             set | ||
|  |             { | ||
|  |                 ViewState["Title"] = value; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         ///////////////////////////////////////////////////////////////////////// | ||
|  |         //  STATE MANAGEMENT | ||
|  |         ///////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.TrackViewState"]/*' /> | ||
|  |         protected override void TrackViewState()  | ||
|  |         { | ||
|  |             base.TrackViewState(); | ||
|  |             if (DataHelper.HasItems()) | ||
|  |             { | ||
|  |                 ((IStateManager)Items).TrackViewState(); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.SaveViewState"]/*' /> | ||
|  |         protected override Object SaveViewState()  | ||
|  |         { | ||
|  |             Object baseState = base.SaveViewState(); | ||
|  |             Items.SaveSelection = true; | ||
|  |             Object items = ((IStateManager)Items).SaveViewState(); | ||
|  | 
 | ||
|  |             if (items != null || baseState != null) | ||
|  |             { | ||
|  |                 return new Object[] { baseState, items }; | ||
|  |             } | ||
|  |              | ||
|  |             return null; | ||
|  |         } | ||
|  | 
 | ||
|  |         /// <include file='doc\SelectionList.uex' path='docs/doc[@for="SelectionList.LoadViewState"]/*' /> | ||
|  |         protected override void LoadViewState(Object savedState)  | ||
|  |         { | ||
|  |             if (savedState != null)  | ||
|  |             { | ||
|  |                 Object[] state = (Object[])savedState; | ||
|  |                 if (state[0] != null) | ||
|  |                 { | ||
|  |                     base.LoadViewState(state[0]); | ||
|  |                 } | ||
|  |                  | ||
|  |                 // restore state of items | ||
|  |                 Items.SaveSelection = true; | ||
|  |                 ((IStateManager)Items).LoadViewState(state[1]); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         private ArrayList SelectedIndicesInternal  | ||
|  |         { | ||
|  |             get  | ||
|  |             { | ||
|  |                 int count = Items.Count; | ||
|  |                 ArrayList selectedIndices = new ArrayList(count);  | ||
|  |                 for (int i = 0; i < count; i++)  | ||
|  |                 { | ||
|  |                     if (Items[i].Selected)   | ||
|  |                     { | ||
|  |                         selectedIndices.Add(i); | ||
|  |                     } | ||
|  |                 } | ||
|  |                 return selectedIndices; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         internal void ClearSelection()  | ||
|  |         { | ||
|  |             for (int i = 0; i < Items.Count; i++) | ||
|  |             { | ||
|  |                 Items[i].Selected = false; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #region IPostBackDataHandler implementation | ||
|  |         bool IPostBackDataHandler.LoadPostData(String key, NameValueCollection data) { | ||
|  |             return LoadPostData(key, data); | ||
|  |         } | ||
|  | 
 | ||
|  |         void IPostBackDataHandler.RaisePostDataChangedEvent() { | ||
|  |             RaisePostDataChangedEvent(); | ||
|  |         } | ||
|  |         #endregion | ||
|  |     } | ||
|  | } |