private void WriteScriptStatements(TextWriter writer) { string cleanUpScripts = WriteCleanUpScripts().ToString(); bool shouldWriteOnDocumentReady = scriptableComponents.Any() || OnDocumentReadyActions.Any() || OnDocumentReadyStatements.Any() || OutputGlobalization; bool shouldWriteOnWindowUnload = OnWindowUnloadActions.Any() || OnWindowUnloadStatements.Any() || cleanUpScripts.Trim().HasValue(); if (shouldWriteOnDocumentReady || shouldWriteOnWindowUnload) { bool isFirst; writer.WriteLine("<script type=\"text/javascript\">{0}//<![CDATA[".FormatWith(Environment.NewLine)); // pageLoad if (shouldWriteOnDocumentReady) { writer.WriteLine(ScriptWrapper.OnPageLoadStart); // globalization if (OutputGlobalization) { var globalizationInfo = new GlobalizationInfo(CultureInfo.CurrentCulture); writer.WriteLine("if(!jQuery.telerik) jQuery.telerik = {};"); writer.Write("jQuery.telerik.cultureInfo="); writer.Write(new JavaScriptSerializer().Serialize(globalizationInfo.ToDictionary())); writer.WriteLine(";"); } isFirst = true; foreach (IScriptableComponent component in scriptableComponents.Where(s => !s.IsSelfInitialized)) { if (!isFirst) { writer.WriteLine(); } component.WriteInitializationScript(writer); isFirst = false; } isFirst = true; foreach (Action action in OnDocumentReadyActions) { if (!isFirst) { writer.WriteLine(); } action(); isFirst = false; } isFirst = true; foreach (string statement in OnDocumentReadyStatements) { if (!isFirst) { writer.WriteLine(); } writer.Write(statement); isFirst = false; } writer.WriteLine(ScriptWrapper.OnPageLoadEnd); } // pageUnload if (shouldWriteOnWindowUnload) { writer.WriteLine(ScriptWrapper.OnPageUnloadStart); isFirst = true; foreach (Action action in OnWindowUnloadActions) { if (!isFirst) { writer.WriteLine(); } action(); isFirst = false; } isFirst = true; foreach (string statement in OnWindowUnloadStatements) { if (!isFirst) { writer.WriteLine(); } writer.Write(statement); isFirst = false; } writer.WriteLine(cleanUpScripts); // write clean up scripts writer.WriteLine(ScriptWrapper.OnPageUnloadEnd); } writer.Write("//]]>{0}</script>".FormatWith(Environment.NewLine)); } }