Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / xsp / System / Web / Extensions / ui / ScriptRegistrationManager.cs / 2 / ScriptRegistrationManager.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Text; using System.Text.RegularExpressions; using System.Web.UI; using System.Web.Resources; using System.Web.Script.Serialization; internal sealed class ScriptRegistrationManager { private static Regex ScriptTagRegex = new Regex( @"", indexOfEndOfScriptBeginTag, StringComparison.OrdinalIgnoreCase); if (indexOfScriptEndTag == -1) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.ScriptRegistrationManager_NoCloseTag, activeRegistration.Type.FullName, activeRegistration.Key)); } string scriptBlockContents = scriptContent.Substring(indexOfEndOfScriptBeginTag, (indexOfScriptEndTag - indexOfEndOfScriptBeginTag)); // Turn the text content into a text attribute attrs.Add("text", scriptBlockContents); lastIndex = indexOfScriptEndTag + 9; } // Process all the explicit attributes on the script tag CaptureCollection attrnames = match.Groups["attrname"].Captures; CaptureCollection attrvalues = match.Groups["attrval"].Captures; for (int i = 0; i < attrnames.Count; i++) { string attribName = attrnames[i].ToString(); string attribValue = attrvalues[i].ToString(); // DevDev Bugs 123213: script elements registered with RegisterStartupScript are normally rendered // into the html of the page. Any html encoded values in the attributes are interpreted by the // browser, so the actual data is not html encoded. We must HtmlDecode any attribute values we find // here to remain consistent during async posts, since the data will be dynamically injected into // the dom, bypassing the browser's natural html decoding. attribValue = HttpUtility.HtmlDecode(attribValue); attrs.Add(attribName, attribValue); } // Serialize the attributes to JSON and write them out JavaScriptSerializer serializer = new JavaScriptSerializer(); string attrText = serializer.Serialize(attrs); PageRequestManager.EncodeString(writer, token, "ScriptContentWithTags", attrText); } CheckScriptTagTweenSpace(activeRegistration, scriptContent, lastIndex, scriptContent.Length - lastIndex); if (lastIndex == 0) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.ScriptRegistrationManager_NoTags, activeRegistration.Type.FullName, activeRegistration.Key)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Text; using System.Text.RegularExpressions; using System.Web.UI; using System.Web.Resources; using System.Web.Script.Serialization; internal sealed class ScriptRegistrationManager { private static Regex ScriptTagRegex = new Regex( @"", indexOfEndOfScriptBeginTag, StringComparison.OrdinalIgnoreCase); if (indexOfScriptEndTag == -1) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.ScriptRegistrationManager_NoCloseTag, activeRegistration.Type.FullName, activeRegistration.Key)); } string scriptBlockContents = scriptContent.Substring(indexOfEndOfScriptBeginTag, (indexOfScriptEndTag - indexOfEndOfScriptBeginTag)); // Turn the text content into a text attribute attrs.Add("text", scriptBlockContents); lastIndex = indexOfScriptEndTag + 9; } // Process all the explicit attributes on the script tag CaptureCollection attrnames = match.Groups["attrname"].Captures; CaptureCollection attrvalues = match.Groups["attrval"].Captures; for (int i = 0; i < attrnames.Count; i++) { string attribName = attrnames[i].ToString(); string attribValue = attrvalues[i].ToString(); // DevDev Bugs 123213: script elements registered with RegisterStartupScript are normally rendered // into the html of the page. Any html encoded values in the attributes are interpreted by the // browser, so the actual data is not html encoded. We must HtmlDecode any attribute values we find // here to remain consistent during async posts, since the data will be dynamically injected into // the dom, bypassing the browser's natural html decoding. attribValue = HttpUtility.HtmlDecode(attribValue); attrs.Add(attribName, attribValue); } // Serialize the attributes to JSON and write them out JavaScriptSerializer serializer = new JavaScriptSerializer(); string attrText = serializer.Serialize(attrs); PageRequestManager.EncodeString(writer, token, "ScriptContentWithTags", attrText); } CheckScriptTagTweenSpace(activeRegistration, scriptContent, lastIndex, scriptContent.Length - lastIndex); if (lastIndex == 0) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.ScriptRegistrationManager_NoTags, activeRegistration.Type.FullName, activeRegistration.Key)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommandLibraryHelper.cs
- Errors.cs
- Point3DCollection.cs
- WeakEventTable.cs
- PointCollectionValueSerializer.cs
- ArithmeticLiteral.cs
- DateTimeConstantAttribute.cs
- GetFileNameResult.cs
- _CookieModule.cs
- DataGridViewSortCompareEventArgs.cs
- QilLiteral.cs
- RtfFormatStack.cs
- CssTextWriter.cs
- CatalogPart.cs
- Processor.cs
- GcSettings.cs
- CodeBlockBuilder.cs
- Calendar.cs
- MsmqIntegrationReceiveParameters.cs
- AtomMaterializerLog.cs
- Bits.cs
- RawStylusActions.cs
- SerializationStore.cs
- StringConcat.cs
- InputLangChangeEvent.cs
- InstanceHandle.cs
- Path.cs
- ADMembershipProvider.cs
- SHA384.cs
- StylusOverProperty.cs
- SqlDataAdapter.cs
- LayoutTable.cs
- ColorKeyFrameCollection.cs
- Pointer.cs
- JoinGraph.cs
- DBDataPermission.cs
- _IPv4Address.cs
- TreeNodeMouseHoverEvent.cs
- BreakRecordTable.cs
- FontCacheUtil.cs
- Validator.cs
- SimpleBitVector32.cs
- XmlSchema.cs
- WriterOutput.cs
- FixedFindEngine.cs
- TextPenaltyModule.cs
- ObfuscateAssemblyAttribute.cs
- BooleanProjectedSlot.cs
- BuildManager.cs
- DataGridViewAccessibleObject.cs
- WeakRefEnumerator.cs
- CharConverter.cs
- DecimalAnimation.cs
- ListSortDescription.cs
- InfoCardBaseException.cs
- TextDecorationCollection.cs
- Pkcs9Attribute.cs
- TablePatternIdentifiers.cs
- CircleHotSpot.cs
- SupportsEventValidationAttribute.cs
- AnnotationHighlightLayer.cs
- RemotingConfigParser.cs
- HtmlEncodedRawTextWriter.cs
- Utility.cs
- AlphaSortedEnumConverter.cs
- BuildProvider.cs
- DataControlImageButton.cs
- ConfigXmlAttribute.cs
- LZCodec.cs
- FormParameter.cs
- ReadOnlyAttribute.cs
- TextDecoration.cs
- srgsitem.cs
- MarkupWriter.cs
- KerberosSecurityTokenAuthenticator.cs
- RSAPKCS1SignatureDeformatter.cs
- PrimitiveCodeDomSerializer.cs
- BuildResultCache.cs
- HtmlFormParameterReader.cs
- Bitmap.cs
- NavigationPropertyEmitter.cs
- IsolatedStorageFile.cs
- HashFinalRequest.cs
- UInt16.cs
- Models.cs
- MD5.cs
- PrimitiveType.cs
- TypeConverterValueSerializer.cs
- CommunicationObjectAbortedException.cs
- SystemColors.cs
- LazyTextWriterCreator.cs
- GlyphsSerializer.cs
- CompilationRelaxations.cs
- Pair.cs
- SystemResourceKey.cs
- PropertyGeneratedEventArgs.cs
- SoapTypeAttribute.cs
- DependencyPropertyConverter.cs
- AnnotationResource.cs
- Set.cs