public static bool EnableLegacyRendering() { Configuration cfg = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); XhtmlConformanceSection xhtmlSection = (XhtmlConformanceSection)cfg.GetSection("system.web/xhtmlConformance"); return(xhtmlSection.Mode == XhtmlConformanceMode.Legacy); }
protected internal override void Render(HtmlTextWriter writer) { XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as XhtmlConformanceSection; if (xhtml != null && xhtml.Mode == XhtmlConformanceMode.Legacy) { base.Render(writer); } else { writer.WriteBeginTag(TagName); RenderAttributes(writer); writer.Write("/>"); } }
public static bool IsXmlConformResponseTextRequired(HttpContextBase context) { ArgumentUtility.CheckNotNull("context", context); XhtmlConformanceSection xhtmlConformanceSection = (XhtmlConformanceSection)WebConfigurationManager.GetSection("system.web/xhtmlConformance"); Assertion.IsNotNull(xhtmlConformanceSection, "Config section 'system.web/xhtmlConformance' was not found."); if (xhtmlConformanceSection.Mode != XhtmlConformanceMode.Legacy) { return(true); } return(IsResponseTextXml(context) || IsResponseTextXHtml(context)); }
protected override void RenderAttributes(HtmlTextWriter w) { /* Need to always render: method, action and id */ string action; string customAction = Attributes ["action"]; Page page = Page; HttpRequest req = page != null ? page.RequestInternal : null; #if !TARGET_J2EE if (String.IsNullOrEmpty(customAction)) { string file_path = req != null ? req.ClientFilePath : null; string current_path = req != null ? req.CurrentExecutionFilePath : null; if (file_path == null) { action = Action; } else if (file_path == current_path) { // Just the filename will do action = UrlUtils.GetFile(file_path); } else { // Fun. We need to make cookieless sessions work, so no // absolute paths here. bool cookieless; SessionStateSection sec = WebConfigurationManager.GetSection("system.web/sessionState") as SessionStateSection; cookieless = sec != null ? sec.Cookieless == HttpCookieMode.UseUri: false; string appVPath = HttpRuntime.AppDomainAppVirtualPath; int appVPathLen = appVPath.Length; if (appVPathLen > 1) { if (cookieless) { if (StrUtils.StartsWith(file_path, appVPath, true)) { file_path = file_path.Substring(appVPathLen); } } else if (StrUtils.StartsWith(current_path, appVPath, true)) { current_path = current_path.Substring(appVPathLen); } } if (cookieless) { Uri current_uri = new Uri("http://host" + current_path); Uri fp_uri = new Uri("http://host" + file_path); action = fp_uri.MakeRelative(current_uri); } else { action = current_path; } } } else { action = customAction; } if (req != null) { action += req.QueryStringRaw; } #else // Allow the page to transform action to a portlet action url if (String.IsNullOrEmpty(customAction)) { string queryString = req.QueryStringRaw; action = CreateActionUrl(VirtualPathUtility.ToAppRelative(req.CurrentExecutionFilePath) + (string.IsNullOrEmpty(queryString) ? string.Empty : "?" + queryString)); } else { action = customAction; } #endif if (req != null) { XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as XhtmlConformanceSection; if (xhtml == null || xhtml.Mode != XhtmlConformanceMode.Strict) #if NET_4_0 { if (RenderingCompatibilityLessThan40) #endif { // LAMESPEC: MSDN says the 'name' attribute is rendered only in // Legacy mode, this is not true. w.WriteAttribute("name", Name); } } w.WriteAttribute("method", Method); if (String.IsNullOrEmpty(customAction)) { w.WriteAttribute("action", action, true); } /* * This is a hack that guarantees the ID is set properly for HtmlControl to * render it later on. As ugly as it is, we use it here because of the way * the ID, ClientID and UniqueID properties work internally in our Control * code. * * Fixes bug #82596 */ if (ID == null) { #pragma warning disable 219 string client = ClientID; #pragma warning restore 219 } string submit = page != null?page.GetSubmitStatements() : null; if (!String.IsNullOrEmpty(submit)) { Attributes.Remove("onsubmit"); w.WriteAttribute("onsubmit", submit); } /* enctype and target should not be written if * they are empty */ string enctype = Enctype; if (!String.IsNullOrEmpty(enctype)) { w.WriteAttribute("enctype", enctype); } string target = Target; if (!String.IsNullOrEmpty(target)) { w.WriteAttribute("target", target); } string defaultbutton = DefaultButton; if (!String.IsNullOrEmpty(defaultbutton)) { Control c = FindControl(defaultbutton); if (c == null || !(c is IButtonControl)) throw new InvalidOperationException(String.Format("The DefaultButton of '{0}' must be the ID of a control of type IButtonControl.", ID)); } if (page != null && DetermineRenderUplevel()) { w.WriteAttribute( "onkeypress", "javascript:return " + page.WebFormScriptReference + ".WebForm_FireDefaultButton(event, '" + c.ClientID + "')"); } } /* Now remove them from the hash so the base * RenderAttributes can do all the rest */ Attributes.Remove("method"); Attributes.Remove("enctype"); Attributes.Remove("target"); base.RenderAttributes(w); }
static void Main(string[] args) { string inputStr = String.Empty; string option = String.Empty; // Define a regular expression to allow only // alphanumeric inputs that are at most 20 character // long. For instance "/iii:". Regex rex = new Regex(@"[^\/w]{1,20}:"); // Parse the user's input. if (args.Length < 1) { // No option entered. Console.Write("Input parameter missing."); return; } else { // Get the user's option. inputStr = args[0].ToLower(); if (!(rex.Match(inputStr)).Success) { // Wrong option format used. Console.Write("Input parameter format not allowed."); return; } } // <Snippet1> // Get the Web application configuration. System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration( "/aspnetTest"); // Get the <system.web> group. SystemWebSectionGroup systemWeb = (SystemWebSectionGroup)configuration.GetSectionGroup("system.web"); // </Snippet1> try { switch (inputStr) { case "/anonymous:": // <Snippet2> // Get the anonymousIdentification section. AnonymousIdentificationSection anonymousIdentification = systemWeb.AnonymousIdentification; // Read section information. info = anonymousIdentification.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet2> Console.Write(msg); break; case "/authentication:": // <Snippet3> // Get the authentication section. AuthenticationSection authentication = systemWeb.Authentication; // Read section information. info = authentication.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet3> Console.Write(msg); break; case "/authorization:": // <Snippet4> // Get the authorization section. AuthorizationSection authorization = systemWeb.Authorization; // Read section information. info = authorization.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet4> Console.Write(msg); break; case "/compilation:": // <Snippet5> // Get the compilation section. CompilationSection compilation = systemWeb.Compilation; // Read section information. info = compilation.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet5> Console.Write(msg); break; case "/customerrors:": // <Snippet6> // Get the customerrors section. CustomErrorsSection customerrors = systemWeb.CustomErrors; // Read section information. info = customerrors.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet6> Console.Write(msg); break; case "/globalization:": // <Snippet7> // Get the globalization section. GlobalizationSection globalization = systemWeb.Globalization; // Read section information. info = globalization.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet7> Console.Write(msg); break; case "/httpcookies:": // <Snippet8> // Get the httpCookies section. HttpCookiesSection httpCookies = systemWeb.HttpCookies; // Read section information. info = httpCookies.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet8> Console.Write(msg); break; case "/httphandlers:": // <Snippet9> // Get the httpHandlers section. HttpHandlersSection httpHandlers = systemWeb.HttpHandlers; // Read section information. info = httpHandlers.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet9> Console.Write(msg); break; case "/httpmodules:": // <Snippet10> // Get the httpModules section. HttpModulesSection httpModules = systemWeb.HttpModules; // Read section information. info = httpModules.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet10> Console.Write(msg); break; case "/httpruntime:": // <Snippet11> // Get the httpRuntime section. HttpRuntimeSection httpRuntime = systemWeb.HttpRuntime; // Read section information. info = httpRuntime.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet11> Console.Write(msg); break; case "/identity:": // <Snippet12> // Get the identity section. IdentitySection identity = systemWeb.Identity; // Read section information. info = identity.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet12> Console.Write(msg); break; case "/machinekey:": // <Snippet13> // Get the machineKey section. MachineKeySection machineKey = systemWeb.MachineKey; // Read section information. info = machineKey.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet13> Console.Write(msg); break; case "/membership:": // <Snippet14> // Get the membership section. MembershipSection membership = systemWeb.Membership; // Read section information. info = membership.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet14> Console.Write(msg); break; case "/pages:": // <Snippet15> // Get the pages section. PagesSection pages = systemWeb.Pages; // Read section information. info = pages.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet15> Console.Write(msg); break; case "/processModel:": // <Snippet16> // Get the processModel section. ProcessModelSection processModel = systemWeb.ProcessModel; // Read section information. info = processModel.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet16> Console.Write(msg); break; case "/profile:": // <Snippet17> // Get the profile section. ProfileSection profile = systemWeb.Profile; // Read section information. info = profile.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet17> Console.Write(msg); break; case "/roleManager:": // <Snippet18> // Get the roleManager section. RoleManagerSection roleManager = systemWeb.RoleManager; // Read section information. info = roleManager.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet18> Console.Write(msg); break; case "/securityPolicy:": // <Snippet19> // Get the securityPolicy section. SecurityPolicySection securityPolicy = systemWeb.SecurityPolicy; // Read section information. info = securityPolicy.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet19> Console.Write(msg); break; case "/sessionState:": // <Snippet20> // Get the sessionState section. SessionStateSection sessionState = systemWeb.SessionState; // Read section information. info = sessionState.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet20> Console.Write(msg); break; case "/sitemap:": // <Snippet21> // Get the siteMap section. SiteMapSection siteMap = systemWeb.SiteMap; // Read section information. info = siteMap.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet21> Console.Write(msg); break; case "/trace:": // <Snippet22> // Get the trace section. TraceSection trace = systemWeb.Trace; // Read section information. info = trace.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet22> Console.Write(msg); break; case "/trust:": // <Snippet23> // Get the trust section. TrustSection trust = systemWeb.Trust; // Read section information. info = trust.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet23> Console.Write(msg); break; case "/browserCaps:": // <Snippet24> // Get the browserCaps section. DefaultSection browserCaps = systemWeb.BrowserCaps; // Read section information. info = browserCaps.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet24> Console.Write(msg); break; case "/clientTarget:": // <Snippet25> // Get the clientTarget section. ClientTargetSection clientTarget = systemWeb.ClientTarget; // Read section information. info = clientTarget.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet25> Console.Write(msg); break; case "/deployment:": // <Snippet26> // Get the deployment section. DeploymentSection deployment = systemWeb.Deployment; // Read section information. info = deployment.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet26> Console.Write(msg); break; case "/deviceFilters:": // <Snippet27> // Get the deviceFilters section. DefaultSection deviceFilters = systemWeb.DeviceFilters; // Read section information. info = deviceFilters.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet27> Console.Write(msg); break; case "/healthMonitoring:": // <Snippet28> // Get the healthMonitoring section. HealthMonitoringSection healthMonitoring = systemWeb.HealthMonitoring; // Read section information. info = healthMonitoring.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet28> Console.Write(msg); break; case "/hostingEnvironment:": // <Snippet29> // Get the hostingEnvironment section. HostingEnvironmentSection hostingEnvironment = systemWeb.HostingEnvironment; // Read section information. info = hostingEnvironment.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet29> Console.Write(msg); break; case "/mobileControls:": // <Snippet30> // Get the mobileControls section. ConfigurationSection mobileControls = systemWeb.MobileControls; // Read section information. info = mobileControls.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet30> Console.Write(msg); break; case "/protocols:": // <Snippet31> // Get the protocols section. DefaultSection protocols = systemWeb.Protocols; // Read section information. info = protocols.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet31> Console.Write(msg); break; case "/urlMappings:": // <Snippet32> // Get the urlMappings section. UrlMappingsSection urlMappings = systemWeb.UrlMappings; // Read section information. info = urlMappings.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet32> Console.Write(msg); break; case "/webControls:": // <Snippet33> // Get the webControls section. WebControlsSection webControls = systemWeb.WebControls; // Read section information. info = webControls.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet33> Console.Write(msg); break; case "/webParts:": // <Snippet34> // Get the webParts section. WebPartsSection webParts = systemWeb.WebParts; // Read section information. info = webParts.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet34> Console.Write(msg); break; case "/webServices:": // <Snippet35> // Get the webServices section. WebServicesSection webServices = systemWeb.WebServices; // Read section information. info = webServices.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet35> Console.Write(msg); break; case "/XhtmlConformance:": // <Snippet36> // Get the xhtmlConformance section. XhtmlConformanceSection xhtmlConformance = systemWeb.XhtmlConformance; // Read section information. info = xhtmlConformance.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); msg = String.Format( "Name: {0}\nDeclared: {1}\nType: {2}\n", name, declared, type); // </Snippet36> Console.Write(msg); break; case "/all:": StringBuilder allSections = new StringBuilder(); ConfigurationSectionGroup systemWebGroup = configuration.GetSectionGroup("system.web"); int i = 0; foreach (ConfigurationSection section in systemWebGroup.Sections) { i += 1; info = section.SectionInformation; name = info.SectionName; type = info.Type; declared = info.IsDeclared.ToString(); if (i < 10) { msg = String.Format( "{0})Name: {1}\nDeclared: {2}\nType: {3}\n", i.ToString(), name, declared, type); } else { msg = String.Format( "{0})Name: {1}\nDeclared: {2}\nType: {3}\n", i.ToString(), name, declared, type); } allSections.AppendLine(msg); } // Console.WriteLine(systemWebGroup.Name); // Console.WriteLine(systemWebGroup.SectionGroupName); Console.Write(allSections.ToString()); break; default: // Option is not allowed.. Console.Write("Input not allowed."); break; } } catch (ArgumentException e) { // Never display this. Use it for // debugging purposes. msg = e.ToString(); } }
protected override void RenderAttributes(HtmlTextWriter w) { /* Need to always render: method, action and id */ /* The name attribute is rendered _only_ if we're not in * 2.0 mode or if the xhtml conformance mode is set to * Legacy for 2.0 according to http://msdn2.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlform.name.aspx */ string action; #if NET_2_0 string customAction = Attributes ["action"]; #endif Page p = Page; HttpRequest req = p != null ? p.Request : null; if (req == null) { throw new HttpException("No current request, cannot continue rendering."); } #if !TARGET_J2EE #if NET_2_0 if (String.IsNullOrEmpty(customAction)) { #endif string file_path = req.ClientFilePath; string current_path = req.CurrentExecutionFilePath; if (file_path == current_path) { // Just the filename will do action = UrlUtils.GetFile(file_path); } else { // Fun. We need to make cookieless sessions work, so no // absolute paths here. bool cookieless; #if NET_2_0 SessionStateSection sec = WebConfigurationManager.GetSection("system.web/sessionState") as SessionStateSection; cookieless = sec != null ? sec.Cookieless == HttpCookieMode.UseUri: false; #else SessionConfig sec = HttpContext.GetAppConfig("system.web/sessionState") as SessionConfig; cookieless = sec != null ? sec.CookieLess : false; #endif string appVPath = HttpRuntime.AppDomainAppVirtualPath; int appVPathLen = appVPath.Length; if (appVPathLen > 1) { if (cookieless) { if (StrUtils.StartsWith(file_path, appVPath, true)) { file_path = file_path.Substring(appVPathLen); } } else if (StrUtils.StartsWith(current_path, appVPath, true)) { current_path = current_path.Substring(appVPathLen); } } if (cookieless) { Uri current_uri = new Uri("http://host" + current_path); Uri fp_uri = new Uri("http://host" + file_path); action = fp_uri.MakeRelative(current_uri); } else { action = current_path; } } #if NET_2_0 } else { action = customAction; } #endif action += req.QueryStringRaw; #else // Allow the page to transform action to a portlet action url if (String.IsNullOrEmpty(customAction)) { string queryString = req.QueryStringRaw; action = CreateActionUrl(VirtualPathUtility.ToAppRelative(req.CurrentExecutionFilePath) + (string.IsNullOrEmpty(queryString) ? string.Empty : "?" + queryString)); } else { action = customAction; } #endif #if NET_2_0 XhtmlConformanceSection xhtml = WebConfigurationManager.GetSection("system.web/xhtmlConformance") as XhtmlConformanceSection; if (xhtml != null && xhtml.Mode == XhtmlConformanceMode.Legacy) #endif w.WriteAttribute("name", Name); w.WriteAttribute("method", Method); #if NET_2_0 if (String.IsNullOrEmpty(customAction)) #endif w.WriteAttribute("action", action, true); /* * This is a hack that guarantees the ID is set properly for HtmlControl to * render it later on. As ugly as it is, we use it here because of the way * the ID, ClientID and UniqueID properties work internally in our Control * code. * * Fixes bug #82596 */ if (ID == null) { #pragma warning disable 219 string client = ClientID; #pragma warning restore 219 } string submit = Page.GetSubmitStatements(); if (submit != null && submit != "") { Attributes.Remove("onsubmit"); w.WriteAttribute("onsubmit", submit); } /* enctype and target should not be written if * they are empty */ string enctype = Enctype; if (enctype != null && enctype != "") { w.WriteAttribute("enctype", enctype); } string target = Target; if (target != null && target != "") { w.WriteAttribute("target", target); } #if NET_2_0 string defaultbutton = DefaultButton; if (!String.IsNullOrEmpty(defaultbutton)) { Control c = FindControl(defaultbutton); if (c == null || !(c is IButtonControl)) { throw new InvalidOperationException(String.Format("The DefaultButton of '{0}' must be the ID of a control of type IButtonControl.", ID)); } if (DetermineRenderUplevel()) { w.WriteAttribute( "onkeypress", "javascript:return " + Page.WebFormScriptReference + ".WebForm_FireDefaultButton(event, '" + c.ClientID + "')"); } } #endif /* Now remove them from the hash so the base * RenderAttributes can do all the rest */ Attributes.Remove("method"); Attributes.Remove("enctype"); Attributes.Remove("target"); base.RenderAttributes(w); }