⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 collapsebar.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
📖 第 1 页 / 共 2 页
字号:
					if ( item.Title != this.ActiveItem ) {
						writer.AddStyleAttribute( "display", "none" );
					}

					if ( !this.Height.IsEmpty ) {
						writer.AddStyleAttribute( "height", "100%" );
					}

					this.ContentStyle.AddAttributesToRender( writer );
					writer.RenderBeginTag( "div" );
			
					item.RenderControl( writer );
			
					writer.RenderEndTag();

				}
			}
		}

		private void RenderUpLevelButtons( HtmlTextWriter writer ) {
			foreach ( CollapseBarItem item in this.Items ) {
				if ( item.Visible ) {
				
					Boolean itemIsCurrent = ( item.Title == this.ActiveItem );

					if ( !itemIsCurrent ) {
						writer.AddAttribute( HtmlTextWriterAttribute.Onclick, this.Page.GetPostBackEventReference( this, item.Title ) );
						writer.AddStyleAttribute( "cursor", "pointer" );
					}

					System.Web.UI.WebControls.Style itemStyle = new System.Web.UI.WebControls.Style();
					if ( itemIsCurrent ) {
						itemStyle.CopyFrom( this.CurrentButtonStyle );
					}
					itemStyle.MergeWith( this.ButtonStyle );
					itemStyle.AddAttributesToRender( writer );
					writer.AddStyleAttribute( "padding", "5px" );
					writer.AddStyleAttribute( "white-space", "nowrap" );
					writer.RenderBeginTag( "div" );


					HyperLink buttonControl = new HyperLink();
					if ( !itemIsCurrent && this.Page != null ) {
						buttonControl.NavigateUrl = this.Page.GetPostBackClientHyperlink( this, item.Title );
					} else {
						buttonControl.NavigateUrl = "";
					}
					buttonControl.BorderWidth = Unit.Pixel( 0 );
					buttonControl.ForeColor = itemStyle.ForeColor;
					buttonControl.Text = item.Title;
					buttonControl.RenderControl( writer );


					writer.RenderEndTag();

				}
			}
		}

		
		#endregion

		#region Render DownLevel

		private void RenderContentsDownLevel( HtmlTextWriter writer ) {
			RenderDownLevelButtons( writer );
			RenderDownLevelCurrentItem( writer );
		}

		private void RenderDownLevelButtons( HtmlTextWriter writer ) {
			foreach( CollapseBarItem item in this.Items ) {
				if ( item.Visible ) {

					Boolean itemIsCurrent = ( item.Title == this.ActiveItem );
			
					System.Web.UI.WebControls.Style itemStyle = new System.Web.UI.WebControls.Style();
					if ( itemIsCurrent ) {
						itemStyle.CopyFrom( this.CurrentButtonStyle );
					}
					itemStyle.MergeWith( this.ButtonStyle );

					itemStyle.AddAttributesToRender( writer );
					writer.AddStyleAttribute( "padding", "5px" );
					writer.RenderBeginTag( "div" );

					if ( itemIsCurrent ) {
						writer.Write( item.Title );
					} else {
						Button itemButton = new Button();
						itemButton.ID = this.UniqueID + ":" + item.Title;
						itemButton.Text = item.Title;
						itemButton.ForeColor = itemStyle.ForeColor;
						itemButton.BackColor = itemStyle.BackColor;
						itemButton.RenderControl( writer );
					}
				
					writer.RenderEndTag();

				}
			}
		}

		private void RenderDownLevelCurrentItem( HtmlTextWriter writer ) {

			foreach( CollapseBarItem item in this.Items ) {
				if ( item.Title == this.ActiveItem ) {

					if ( item.Visible ) {

						if ( !this.Height.IsEmpty ) {
							writer.AddStyleAttribute( "height", "100%" );
						}

						this.ContentStyle.AddAttributesToRender( writer );
						writer.RenderBeginTag( "div" );

						item.RenderControl( writer );

						writer.RenderEndTag();

					}

					break;
				}
			}
		}

		
		#endregion

		private Boolean RenderUpLevel {
			get {
				return this.Page != null && this.UplevelBrowser;
			}
		}

		private Boolean UplevelBrowser {
			get {
				if ( HttpContext.Current == null ) { return true; }

				return !( HttpContext.Current.Request.Browser.TagWriter.Equals( typeof( Html32TextWriter ) ) );
			}
		}

		#endregion

		#region ClientScript

		private static readonly String scriptKey = "CommunityServer.Controls.CollapseBar";
		private static readonly String arrayName = "CommunityServer_CollapseBars";

		private void RegisterClientScript() {
			if ( Page == null ) {
				return;
			}

			String currentItemIndex = "0";
			for( Int32 i = 0; i < this.Items.Count; i++ ) {
				CollapseBarItem item = this.Items[ i ];
				if ( item.Title == this.CurrentItem ) {
					currentItemIndex = i.ToString();
					break;
				}
			}

			this.Page.RegisterHiddenField( ClientSideCurrentItemTrackerID, currentItemIndex );

			if ( !Page.IsClientScriptBlockRegistered( scriptKey ) ) {
				this.Page.RegisterClientScriptBlock( scriptKey, String.Format( "<script type='text/javascript' language='javascript' src='{0}'></script>", Page.ResolveUrl( "~/Utility/CollapseBarScript.js" ) ) );
			}

			Page.RegisterArrayDeclaration( arrayName, "{ ID:'" + this.ClientID + "', InitialSelectedIndex:'" + currentItemIndex.ToString() + "', HiddenID:'" + ClientSideCurrentItemTrackerID + "', ItemCount:'" + this.Items.Count.ToString() + "' }" );

			if( !Page.IsStartupScriptRegistered( scriptKey ) ) {
				this.Page.RegisterStartupScript( scriptKey, String.Format( @"
<script type='text/javascript' language='javascript'>
<!--
CommunityServer_CollapseBar_Init( '{0}' );
//-->
</script>", this.Page.Request.ApplicationPath ) );
			}
		}

		#endregion

		#region State Cookie
		/// <summary>
		/// Loads state from the state cookie.
		/// </summary>
		protected virtual void LoadStateCookie() {
			HttpCookie cookie = this.Page.Request.Cookies[ StateCookieName ];
			if ( cookie != null ) {
				String savedState = cookie.Value;
				CollapseBarItem storedItem = this.ItemByIndex( savedState );
				if ( storedItem != null ) {
					this.CurrentItem = storedItem.Title;
				}
			}
		}

		/// <summary>
		/// Saves state to the state cookie.
		/// </summary>
		protected virtual void SaveStateCookie() {
			if ( this.Items.Count == 0 ) {
				return;
			}

			HttpCookie cookie = this.Page.Request.Cookies[ StateCookieName ];
			if ( cookie == null ) {
				cookie = new HttpCookie( StateCookieName );
			}

			for( Int32 i = 0; i < this.Items.Count; i++ ) {
				CollapseBarItem item = this.Items[ i ];
				if ( item.Title == this.ActiveItem ) {
					cookie.Value = i.ToString();
				}
			}

			cookie.Expires = System.DateTime.Now.Add( TimeSpan.FromDays( 30 ) );
			cookie.Path = this.Page.Request.ApplicationPath;
			this.Page.Response.Cookies.Add(cookie) ;
		}

		private String StateCookieName {
			get {
				return "CollapseBar:" + this.ClientID;
			}
		}
		#endregion

		#region IPostBackEventHandler Members

		/// <exclude/>
		public void RaisePostBackEvent(string eventArgument) {
			this.CurrentItem = eventArgument;
		}

		#endregion

		#region IPostBackDataHandler Members

		/// <exclude/>
		public void RaisePostDataChangedEvent() {
			// no event
		}

		/// <exclude/>
		public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection) {
			
			// Load from the hidden input set with clientside changes
			String hiddenInputValue = postCollection[ this.ClientSideCurrentItemTrackerID ];
			if ( hiddenInputValue != null ) {
				CollapseBarItem postedItem = this.ItemByIndex( hiddenInputValue );
				if ( postedItem != null && this.CurrentItem != postedItem.Title ) {
					this.CurrentItem = postedItem.Title;
					return false;
				}
			}

			// Load from a click on a title, from a downlevel browser
			foreach( CollapseBarItem item in this.Items ) {
				if ( postCollection[ postDataKey + ":" + item.Title ] != null ) {
					this.CurrentItem = item.Title;
					return false;
				}
			}

			return false;
		}

		private CollapseBarItem ItemByIndex( String itemIndex ) {
			try {
				Int32 index = Int32.Parse( itemIndex );
				if ( 0 <= index && index < this.Items.Count ) {
					return this.Items[ index ];
				}
			} catch( System.FormatException ex ) {
				System.Diagnostics.Debug.WriteLine( ex );
			}
			return null;
		}

		#endregion
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -