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

📄 nobugform.cs

📁 这是我学习ASP.net Forums的过程中
💻 CS
字号:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace MetaBuilders.WebControls.MasterPages 
{

	/// <summary>
	/// A server form that does not cause a problem by being inside a master page or other naming container.
	/// </summary>
	/// <remarks>
	/// When using this version of masterpages with asp.net 1.1, use this form instead of the standard form element for server forms. This is only required because of a bug in asp.net 1.1's version of __doPostBack.
	/// </remarks>
	public class NoBugForm : System.Web.UI.HtmlControls.HtmlForm 
	{

		/// <summary>
		/// Creates a new instance of the NoBugForm class.
		/// </summary>
		public NoBugForm() 
		{
			System.Version runtimeVersion = System.Environment.Version;
			this.doesDoPostBackBugExist = runtimeVersion.Major == 1 && runtimeVersion.Minor == 1 && runtimeVersion.Build == 4322;
		}

		/// <summary>
		/// Overriden to fix the bug.
		/// </summary>
		public override string UniqueID 
		{
			get 
			{
				if ( this.doesDoPostBackBugExist && this.isNamingContainerBreakoutRequired && this.NamingContainer != this.Page ) 
				{
					String fullUniqueID = base.UniqueID;
					return fullUniqueID.Substring(fullUniqueID.LastIndexOf(":")+1);
				} 
				else 
				{
					return base.UniqueID;
				}
			}
		}

		/// <summary>
		/// Overridden to fix the bug.
		/// </summary>
		/// <param name="writer"></param>
		protected override void RenderAttributes(HtmlTextWriter writer) 
		{
			this.isNamingContainerBreakoutRequired = true;
			base.RenderAttributes (writer);
			this.isNamingContainerBreakoutRequired = false;
		}

		/// <summary>
		/// Overridden to fix the bug.
		/// </summary>
		/// <param name="writer"></param>
		protected override void RenderChildren(HtmlTextWriter writer) 
		{
			this.isNamingContainerBreakoutRequired = true;
			base.RenderChildren (writer);
			this.isNamingContainerBreakoutRequired = false;
		}


		

		private Boolean doesDoPostBackBugExist = false;
		private Boolean isNamingContainerBreakoutRequired = false;
	}
}

⌨️ 快捷键说明

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