PageCommon: Master page like page to keep homogeneous style across pages.
This commit is contained in:
@@ -6,7 +6,7 @@ using Scrummer.Code.Controls;
|
||||
|
||||
namespace Scrummer.Code.Pages
|
||||
{
|
||||
public class FrmError : Page
|
||||
public class FrmError : PageCommon
|
||||
{
|
||||
Exception _ex = null;
|
||||
|
||||
@@ -18,11 +18,24 @@ namespace Scrummer.Code.Pages
|
||||
|
||||
void FrmError_Init(object sender, EventArgs e)
|
||||
{
|
||||
CLabel lblMessage = new CLabel { ID = "lblMessage", Text = _ex.Message, Tag = "P" };
|
||||
Title = "Error";
|
||||
|
||||
CLabel lblErrorTitle = new CLabel { Text = "Error", Tag = "h2" };
|
||||
Controls.Add(lblErrorTitle);
|
||||
|
||||
CLabel lblMessage = new CLabel { Tag = "P" };
|
||||
lblMessage.Text = String.Format("<b>{0}:</b> {1}", "Message",HttpUtility.HtmlEncode(_ex.Message));
|
||||
Controls.Add(lblMessage);
|
||||
|
||||
CLabel lblStackTrace = new CLabel { ID = "lblStackTrace", Text = _ex.StackTrace, Tag = "P" };
|
||||
Controls.Add(lblStackTrace);
|
||||
CLabel lblStacktraceTitle = new CLabel { Tag = "p" };
|
||||
lblStacktraceTitle.Text = String.Format("<b>{0}:</b>", "Stacktrace");
|
||||
Controls.Add(lblStacktraceTitle);
|
||||
Panel pnlStacktrace = new Panel();
|
||||
pnlStacktrace.CssClass = "divCode";
|
||||
Controls.Add(pnlStacktrace);
|
||||
LiteralControl litStackTrace = new LiteralControl(
|
||||
String.Format("<pre><code>{0}</code></pre>", HttpUtility.HtmlEncode(_ex.StackTrace)));
|
||||
pnlStacktrace.Controls.Add(litStackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
92
Scrummer/Code/Pages/PageCommon.cs
Normal file
92
Scrummer/Code/Pages/PageCommon.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Web.UI.WebControls;
|
||||
using Scrummer.Code.Controls;
|
||||
|
||||
namespace Scrummer.Code.Pages
|
||||
{
|
||||
public class PageCommon : Page
|
||||
{
|
||||
#region Declarations
|
||||
|
||||
private HtmlHead _head;
|
||||
private HtmlGenericControl _body;
|
||||
private HtmlForm _form;
|
||||
private Panel _pnlContainer = new Panel();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
public new ControlCollection Controls
|
||||
{
|
||||
get { return _pnlContainer.Controls; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Life cycle
|
||||
|
||||
public PageCommon()
|
||||
{
|
||||
Init += PageCommon_Init;
|
||||
PreRender += PageCommon_PreRender;
|
||||
}
|
||||
|
||||
void PageCommon_Init(object sender, EventArgs e)
|
||||
{
|
||||
CreateControls();
|
||||
}
|
||||
|
||||
void PageCommon_PreRender(object sender, EventArgs e)
|
||||
{
|
||||
_head.Title = string.IsNullOrEmpty(Title) ? Globals.Title : String.Format("{0}{1}{2}", Globals.Title, Globals.TitleSeparator, Title);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
private void CreateControls()
|
||||
{
|
||||
Context.Response.Charset = Encoding.UTF8.WebName;
|
||||
|
||||
var doctype = new LiteralControl("<!DOCTYPE html>\n");
|
||||
base.Controls.Add(doctype);
|
||||
|
||||
var html = new HtmlGenericControl("html");
|
||||
base.Controls.Add(html);
|
||||
|
||||
_head = new HtmlHead();
|
||||
html.Controls.Add(_head);
|
||||
|
||||
_head.Controls.Add(new HtmlMeta { HttpEquiv = "content-type", Content = "text/html; charset=utf-8" });
|
||||
_head.Controls.Add(new HtmlMeta { Name = "author", Content = Globals.Author });
|
||||
_head.Controls.Add(new HtmlMeta { Name = "Copyright", Content = Globals.Copyright });
|
||||
Assembly asm = Assembly.GetExecutingAssembly();
|
||||
string version = asm.GetName().Version.ToString();
|
||||
_head.Controls.Add(new LiteralControl(String.Format("<script type=\"text/javascript\" src=\"ScriptsBundler?t={0}\"></script>\n", version)));
|
||||
_head.Controls.Add(new LiteralControl(String.Format("<link href=\"StylesBundler?t={0}\" type=\"text/css\" rel=\"stylesheet\"/>\n", version)));
|
||||
|
||||
|
||||
_body = new HtmlGenericControl("body");
|
||||
html.Controls.Add(_body);
|
||||
_form = new HtmlForm { ID = "formMain" };
|
||||
_body.Controls.Add(_form);
|
||||
|
||||
var pnlHeader = new Panel { CssClass = "divHeader" };
|
||||
_form.Controls.Add(pnlHeader);
|
||||
|
||||
var lblTitle = new CLabel { Text = Globals.Title, Tag = "h1" };
|
||||
pnlHeader.Controls.Add(lblTitle);
|
||||
|
||||
_pnlContainer.CssClass = "divContent";
|
||||
_form.Controls.Add(_pnlContainer);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -78,6 +78,9 @@
|
||||
<Compile Include="Code\GlobalErrorHandler.cs" />
|
||||
<Compile Include="Code\JSON\ParserContext.cs" />
|
||||
<Compile Include="Code\Pages\FrmEcho.cs" />
|
||||
<Compile Include="Code\Pages\PageCommon.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Code\ScriptsBundler.cs" />
|
||||
<Compile Include="Code\StylesBundler.cs" />
|
||||
<Compile Include="GlobalRouter.cs" />
|
||||
@@ -89,6 +92,7 @@
|
||||
<Compile Include="Globals.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
||||
@@ -1,2 +1,64 @@
|
||||
body {
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
font-size: 12px;
|
||||
background-color: grey;
|
||||
color: black;
|
||||
}
|
||||
|
||||
p{
|
||||
margin-bottom: 0.5em;
|
||||
text-shadow: 0 1px 1px rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.7em;
|
||||
text-align: center;
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: 0.5em;
|
||||
text-shadow: 0 1px 1px rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: 0.5em;
|
||||
text-shadow: 0 1px 1px rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
text-align: left;
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: 0.5em;
|
||||
text-shadow: 0 1px 1px rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
.divHeader {
|
||||
display: block;
|
||||
background-color: black;
|
||||
}
|
||||
.divHeader h1{
|
||||
font-size: 30px;
|
||||
color: yellow;
|
||||
margin: 0;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.divContent{
|
||||
padding-left:10px;
|
||||
padding-right:10px;
|
||||
}
|
||||
|
||||
.divCode{
|
||||
background-color: black;
|
||||
color: green;
|
||||
font-family: Courier New, Courier, monospace;
|
||||
text-shadow: none;
|
||||
overflow:auto;
|
||||
margin: 5px;
|
||||
padding: 2px;
|
||||
box-shadow: 0 0 10px rgb(0,0,0);
|
||||
}
|
||||
Reference in New Issue
Block a user