创建自己的自定义错误网页控件

分享于 

5分钟阅读

Web开发

  繁體 雙語

介绍

本文演示了创建可以在多个web应用程序中共享的web控件的简单方法。

背景

设计了自定义错误控件,可以包含下列属性,这些属性可以在每个应用程序/页上进行调整和自定义:

  • ContainerWidth - 表格的宽度
  • ContainerHeight - 表的高度
  • ContainerPosition - 表的对齐方式( Left/Right/Center )
  • ContainerBorder - 表格的边框大小
  • HeaderBackColor - 标头的背景色
  • HeaderTextColor - 标题的文本颜色
  • HeaderTextSize - 标题中文本的大小
  • HeaderText - 要在标题中显示的文本
  • MessageBackColor - 消息区域的背景色
  • MessageTextColor - 消息的文本颜色
  • MessageTextSize - 消息区域中的文本大小
  • Message - 将在消息区域中显示的文本
  • MessageType - 将在三个预先定义的格式中重写和放置控件的类别( Informational/Warning/Err )

使用代码

控件在 ErrorControl 类中进行了设计,方法是继承 System.Web.UI.WebControls.WebControl 并设置上面的背景部分中列出的附加属性。 在同一类中,下面的代码重写 Render 方法,并根据运行时由引用应用程序设置的属性值格式化它:

protectedoverridevoid Render(HtmlTextWriter output)
{
 switch(type)
 {
 case"Informational":
 {
 ContainerWidth = 200;
 ContainerHeight = 100;
 ContainerBorder = 1;
 ContainerPosition = "Center";
 HeaderBackColor = "#006699";
 HeaderTextColor = "White";
 HeaderTextSize = 20;
 HeaderText = "Information!!";
 MessageBackColor = "ThreeDFace";
 MessageTextColor = "Black";
 MessageTextSize = 10;
 Message = "Message!!";
 break;
 }
 case"Warning":
 {
 ContainerWidth = 200;
 ContainerHeight = 100;
 ContainerBorder = 1;
 ContainerPosition = "Center";
 HeaderBackColor = "#ff6600";
 HeaderTextColor = "White";
 HeaderTextSize = 20;
 HeaderText = "Warning!!";
 MessageBackColor = "ThreeDFace";
 MessageTextColor = "Black";
 MessageTextSize = 10;
 Message = "Message!!";
 break;
 }
 case"Err":
 {
 ContainerWidth = 200;
 ContainerHeight = 100;
 ContainerBorder = 1;
 ContainerPosition = "Center";
 HeaderBackColor = "#ff0000";
 HeaderTextColor = "White";
 HeaderTextSize = 20;
 HeaderText = "Error!!";
 MessageBackColor = "ThreeDFace";
 MessageTextColor = "Black";
 MessageTextSize = 10;
 Message = "Message!!";
 break;
 }
 }
 output.Write("<table width=" + ContainerWidth + " height=" + 
 ContainerHeight + " border=" + ContainerBorder + 
 " align=" + ContainerPosition + " CellPadding=10>");
 output.Write("<tr height=20%><td bgcolor=" + HeaderBackColor + 
 "><font color=" + HeaderTextColor + " size=" + 
 HeaderTextSize + "><b><center>" + 
 HeaderText + "</center></b></font></td></tr>");
 output.Write("<tr height=80%><td bgcolor=" + MessageBackColor + 
 "><font color=" + MessageTextColor + " size=" + 
 MessageTextSize + "><b>" + Message + 
 "</b></font></td></tr></table>"); 
}

创建一个简单的web应用程序,并添加对 CustomErrorControl.dll的引用。 在设计模式下,将控件添加到工具箱中。 通过修改 WebForm1_PreRender 事件,在运行时更改属性,如下所示:

privatevoid WebForm1_PreRender(object sender, EventArgs e)
{
 ErrorContol1 = new CustomErrorControl.ErrorContol();
 ErrorContol1.MessageType = "Err";
 this.Controls.Add(ErrorContol1);
}

结束语

本文对创建可以定制的web控件提供了基本的理解。 将自定义错误消息以特定的业务要求显示自定义格式会很有帮助。


相关文章