Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / ScriptRegistrationManager.cs / 1305376 / 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.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.Handlers;
using System.Web.Resources;
using System.Web.Script.Serialization;
using System.Web.UI;
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.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.Handlers;
using System.Web.Resources;
using System.Web.Script.Serialization;
using System.Web.UI;
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
- DirectoryRootQuery.cs
- ClientReliableChannelBinder.cs
- WebConfigurationHost.cs
- _ConnectionGroup.cs
- ExpandCollapsePattern.cs
- PictureBoxDesigner.cs
- WindowsNonControl.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- HttpFileCollectionBase.cs
- OperationInvokerTrace.cs
- CompressEmulationStream.cs
- PixelShader.cs
- ReferenceConverter.cs
- Encoder.cs
- Visual.cs
- RegexNode.cs
- StrokeCollectionDefaultValueFactory.cs
- ExceptionHandlersDesigner.cs
- WS2007HttpBinding.cs
- MetroSerializationManager.cs
- UserControl.cs
- DrawingBrush.cs
- ContentElementAutomationPeer.cs
- RedistVersionInfo.cs
- LinqDataSourceContextData.cs
- EndGetFileNameFromUserRequest.cs
- Rule.cs
- PrintDocument.cs
- PrefixHandle.cs
- JournalEntry.cs
- DBAsyncResult.cs
- TypeLibConverter.cs
- VirtualDirectoryMappingCollection.cs
- ResourceManagerWrapper.cs
- DelimitedListTraceListener.cs
- WebResponse.cs
- ObjectItemNoOpAssemblyLoader.cs
- QilTypeChecker.cs
- X509WindowsSecurityToken.cs
- GetWorkflowTree.cs
- OracleEncoding.cs
- DataServiceQuery.cs
- StateDesigner.LayoutSelectionGlyph.cs
- XmlSignificantWhitespace.cs
- Accessible.cs
- ChannelBinding.cs
- ViewLoader.cs
- ToolStripMenuItem.cs
- SessionStateSection.cs
- DataBoundControlHelper.cs
- UpdatePanelTrigger.cs
- Win32MouseDevice.cs
- SessionParameter.cs
- InputScopeManager.cs
- StringFunctions.cs
- AppDomainAttributes.cs
- EndOfStreamException.cs
- BooleanProjectedSlot.cs
- BindingMAnagerBase.cs
- GridLength.cs
- BaseDataListPage.cs
- XPathAncestorIterator.cs
- BitHelper.cs
- SafeUserTokenHandle.cs
- BinaryWriter.cs
- DataPointer.cs
- TypeDescriptionProvider.cs
- ExtentCqlBlock.cs
- SqlDataSourceCache.cs
- TimeZoneNotFoundException.cs
- ScriptingJsonSerializationSection.cs
- SoapIgnoreAttribute.cs
- ListBox.cs
- ErrorStyle.cs
- LabelDesigner.cs
- WSSecureConversationDec2005.cs
- EventLogPermissionEntry.cs
- PrintDialogException.cs
- Calendar.cs
- InvalidateEvent.cs
- ScrollProperties.cs
- DesignerPerfEventProvider.cs
- HtmlControlPersistable.cs
- DataRowChangeEvent.cs
- AssertFilter.cs
- XmlIterators.cs
- PublisherMembershipCondition.cs
- ViewKeyConstraint.cs
- SslStream.cs
- TreeNode.cs
- SqlClientFactory.cs
- ColumnPropertiesGroup.cs
- SelectingProviderEventArgs.cs
- DiagnosticsConfigurationHandler.cs
- _HTTPDateParse.cs
- CharAnimationUsingKeyFrames.cs
- MessageDirection.cs
- AtomMaterializer.cs
- InstancePersistenceException.cs
- FileSystemWatcher.cs