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
- SequenceDesigner.cs
- MailBnfHelper.cs
- SplineKeyFrames.cs
- LocatorManager.cs
- SharedDp.cs
- UniqueConstraint.cs
- DesignerProperties.cs
- TextEmbeddedObject.cs
- OleDbWrapper.cs
- FileFormatException.cs
- FrameworkTextComposition.cs
- TypeReference.cs
- PersistenceContext.cs
- SafeFindHandle.cs
- Normalization.cs
- PersianCalendar.cs
- RTLAwareMessageBox.cs
- _IPv4Address.cs
- AssociationProvider.cs
- InstalledFontCollection.cs
- TypographyProperties.cs
- ResourceDefaultValueAttribute.cs
- DriveInfo.cs
- Image.cs
- HtmlMeta.cs
- externdll.cs
- RSACryptoServiceProvider.cs
- InputLanguageCollection.cs
- AutoResizedEvent.cs
- PageWrapper.cs
- SqlBinder.cs
- Point3DKeyFrameCollection.cs
- RequestSecurityTokenSerializer.cs
- IndependentAnimationStorage.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- XmlBinaryReader.cs
- EntryPointNotFoundException.cs
- SystemEvents.cs
- CustomTypeDescriptor.cs
- ListParaClient.cs
- TextBoxLine.cs
- PopupControlService.cs
- CreateUserWizardStep.cs
- MailMessageEventArgs.cs
- Bold.cs
- EntityDataSourceWrapperCollection.cs
- _NetworkingPerfCounters.cs
- BoundField.cs
- TransactionOptions.cs
- BitmapMetadata.cs
- WebBrowserProgressChangedEventHandler.cs
- PKCS1MaskGenerationMethod.cs
- EditorPart.cs
- Unit.cs
- EncoderNLS.cs
- shaperfactory.cs
- SendActivityDesigner.cs
- AssociatedControlConverter.cs
- WebControlsSection.cs
- TabItemWrapperAutomationPeer.cs
- TextShapeableCharacters.cs
- SessionEndedEventArgs.cs
- StrokeIntersection.cs
- ButtonColumn.cs
- HyperLinkStyle.cs
- ExpressionPrefixAttribute.cs
- ByteFacetDescriptionElement.cs
- BeginStoryboard.cs
- XmlWrappingReader.cs
- ToolStripAdornerWindowService.cs
- TemplateColumn.cs
- AuthenticationService.cs
- DWriteFactory.cs
- DataGridViewAdvancedBorderStyle.cs
- InvalidWorkflowException.cs
- XmlHierarchyData.cs
- SatelliteContractVersionAttribute.cs
- QilChoice.cs
- ThreadAbortException.cs
- ExceptionHandlerDesigner.cs
- ComplexPropertyEntry.cs
- WebPartChrome.cs
- _WebProxyDataBuilder.cs
- AutoGeneratedField.cs
- OdbcTransaction.cs
- ListBindableAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- Events.cs
- SystemColorTracker.cs
- EncryptedData.cs
- ParenthesizePropertyNameAttribute.cs
- SchemaTypeEmitter.cs
- FileUpload.cs
- ServiceModelConfigurationSectionCollection.cs
- Baml2006SchemaContext.cs
- AdvancedBindingPropertyDescriptor.cs
- SqlBulkCopyColumnMapping.cs
- CellConstant.cs
- FileDialogCustomPlace.cs
- WorkflowMessageEventArgs.cs