RSS 2.0 Feed
2003-12 Entries
摘要:前言 ASP.NET framework本身提供了好几个Validator控件来提供数据验证支持,不过这种支持结构是面向Page层次的。而从整个应用层次的角度来看,可能有非常多的页面需要进行数据验证;从整体来看这些需要数据验证的页面是同一性质的,其不同之处就是所验证的对象、需要验证的内容不同。我们在本文提供一种从整个应用层次角度来考虑的数据验证框架;采用本文的框架可以把数据验证做得更加方便,而且可以保证整体界面的一致性。   数据验证框架结构        整个数据验证框架包含了3部分内容: 1.  从Page继承出所有aspx页面的基类BasePage(注意:所有的aspx页面将从BasePage继承,而不是Page),并且增加一个字段Errors来记录所有的错误字符串和对应的控件ID。    查看代码   public struct ErrorEntry   {       public string text;       public string control_id;   }     public class BasePage : Page   {       public ArrayList Errors;         public BasePage()       {           Errors = new ArrayList();       }         public bool IsValid       {           get           {               return Errors.Count==0;           }       }         // 增加一个错误信息,control_id为被验证控件的ClientID       public void AddError(string text, string control_id)       {           ErrorEntry ee;             ee.text = text;           ee.control_id = control_id;             this.Errors.Add(ee);       }   }   2.  把显示数据验证结果的功能做成一个Validator UserControl,这有点类似于ASP.NET framework所提供的ValidationSummary控件。该UserControl从BasePage的Errors中提取所有的错误并显示出来。当然了,如果没有错误发生的话,该Validator UserControl就不会显示任何内容。 .ascx文件: <aspanel id="PanelError" Runat="server" CssClass="ErrorPanel1">   <TABLE style="BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; FONT: 9pt Arial; BORDER-LEFT: red 1px solid; BORDER-BOTTOM: red 1px solid">       <TR>           <TD>发生错误:           </TD>      ......[阅读全文]

posted @ | Feedback (5) |

摘要:文章完成了,由于有好几页,不好在这里贴出来, 请有兴趣的在这里下载: http://www.smartyouth.net/article.doc 示例代码: http://www.smartyouth.net/scheme.rar  ...[阅读全文]

posted @ | Feedback (27) |

摘要: 今天看到一个banner不错,模仿作了一个,不知道是否有人喜欢? ...[阅读全文]

posted @ | Feedback (4) |

摘要:发票! 火车站,地铁站一大堆兜售发票的人。...[阅读全文]

posted @ | Feedback (7) |

摘要:今天上hotmail,不仅改了版,蛮漂亮的 最重要的是,发现速度非常快。   I like it....[阅读全文]

posted @ | Feedback (2) |

摘要:上下文 基本上我们在儿童时代都玩过积木玩具。通过一块块的积木,再加上我们的想象力,就可以构造出非常多不同的风格的建筑。那么, 我们可不可以把这种搭积木的方式应用到我们的web应用上呢。 问题 web应用通过提供给用户一整套组件(相当于积木),以及一套已经成型的方案(相当于图纸)。用户可以采用类似搭建积木的方式来根据自己的需要制作界面和应用。 环境 采用asp.net 1.0或asp.net 1.1 预备知识 C#,asp.net的服务器控件编程,asp.net服务器控件生命周期 最好具备以下知识 Page Controller,Front Controller 解决方案 1.  划分自己的web积木——UserControl 将web应用分成一块块的积木,每一块积木形成一个UserControl,并且每一个UserControl有一个同名的css文件用来控制界面。   提示:在一般的web应用中,都会有Header,Footer,Login等等这样的模块,这些模块就可以形成UserControl组成web应用的积木。具体积木块应该根据你的web应用功能来划分,一般来说我们可以某个自功能就划分成一个积木。   2.  构建载入积木块的容器——MyPlaceHolder 有了UserControl这些积木块之后,就需要有能够自动在应用中载入这些UserControl积木的容器,这就是PlaceHolder。不过,我们需要扩展PlaceHolder的功能达到自动载入UserControl的目的。   3.  构建主要的建筑结构——PageTemplate.ascx PageTemplate其实也是一个UserControl,只不过其功能是用来包含其他的UserControl积木,在PageTemplate里,可以定义页面的整体布局。比如:Header、Footer在整个页面中的位置,页面主体区域的位置等等。 更重要的是,PageTemplate中应该包含Form的定义,这是asp.net所需要的不可缺少的服务器控件。   4.  采用HttpHandler截获http请求 有了这些基础性的东西之后,我们就应该使用Front Contrller模式来控制所请求的aspx文件,再把这些请求的文件导向正确的UserControl积木。 HttpHandler会载入PageTemplate,然后再根据所请求的页面载入不同的UserControl积木。      流程说明 以某个请求为例,对积木式web应用的流程进行说明   具体应用 采用这种方式构建的web应用即将在www.smartyouth.net开通(将在个把月内开通) 其主要功能有:积木式应用,风格多样化(采用类似于windows主题的方式)。   这是我最近准备写的一篇文章,这里给出的是该文的一个提纲...[阅读全文]

posted @ | Feedback (17) |