这是UI层中WebForm控件部分.这里面封装两部分控件.一部分是基于微软控件的,如WebPanel控件,另一部分基于JQuery EasyUI的.这两部分之前都有介绍,所提供的代码也是片断的,在此很抱歉.这次提供的代码是整个项目文件,大家直接下载就可以.项目文件布局如图-1所示

clip_image001

图-1

      Base文件夹中BaseScriptHelper类是一些页面代码帮助类,可使用此类注册客户端脚本等,目前在EasyUI封装过程中有所使用.BaseUserInfoWeb类是用户登录信息,存储在Session变量中.

      EasyUIControls文件夹是存储JQuery EasyUI类库的,之前已提到过,不再描述

      WebControls文件夹,存储的是基于微软控件的自定义控件之前也有所提及,如图-2所示

clip_image002

图-2

      WebHtmlCustom控件是自定义控件,真正的自定义html控件.它继承的是HtmlGenericControl对象,因此并不需要专门的类来定义它,只提供了IWebHtmlCustomHelper接口,即它的帮助类.这个控件用在了这个场景里,如图-3所示.说明下,这个控件由Table组成,共4行,但它并不是RadioButtonList控件.也没有使用Repeater控件,而是通过拼写<input type=”radio”的代码拼接而成的.因为我们在开发过程中,总会遇到一些比较特殊的客户要求,比如这个.其实可以使用RadioButtonList控件搞定,但客户说要求把疾病分类.最后就搞成这个样子了.它的功能就是根据客户的实际需求,在现有控件无法满足客户的情况下,由我们自己通过拼接<input />代码的方式组合而成.

clip_image004

图-3

      WebHtmlTable控件,在WebPanel(增强版)的贴子中有所介绍,专门用于单据页面中多条操作的,这个控件的帮助类是WebHtmlTableHelper类,大家看下就可以了.它的前台JS帮助类是WebHtmlTableHelper.js,但真正的代码被我放在jquery.extend-lastested.js文件的WebHtmlTableHelper类中,文件位置在/Base/Js文件夹中,可直接参考.

      WebPanel控件就是之前提到的Panel控件(增强版)的贴子中有所介绍.它的帮助类接口是IWebPanelHelper,其前台帮助类的真正位置同WebHtmlTable控件相同.其类名称是WebPanelHelper

      WebQuery控件其实是一个检索控件,一般放在工具栏的下面,提供检索条件,原理同WebPanel控件一致,都是动态创建控件.

      一般来说,每个封装完的控件,都会有一个专门的帮助类与其对应.都是通过这个控件帮助类实现对控件的调度.控件本身一般不涉及这些操作的.

      最下面的是几个常用页面,pageBase是基础页面祖先.这里有个属性说下,如图-4所示.看get部分,首先判断Session中是否存在,若存在,则获取.不存在的话,继承在当前页面的ViewState中查找.如果仍没有找到,则直接new一个.之所以这样处理的原因是一个系统中的某个页面,其Page大都要继承pageBase页面,而某个页面可能并不是只被我们自己开发的系统使用.可能会在另外系统(可能是其他供应商的产品,CS和BS都有可能)中使用.如果碰到的是CS产品,仍是从Session中取这些基础信息的时候,可能会取不到,进而会报错.但其实是要获取到的,至少不应报错

clip_image006

图-4

      在这个项目文件中,也提供了一个js类库,我自己使用和总结的.名称是jquery.extend-lastest.js,位置在/Base/js/文件夹中.在示例项目Common文件夹中的ashx_ajax_service.ashx文件,是调用Ajax操作的.

      示例项目文件,以page_innerlogon.aspx是登录页面,以这个页面为起始页面,登录用户涉及表au_user,登录成功会跳转到page_innerframe.aspx页面,如图-5所示

clip_image008

图-5

 

文章导航

我的工具集之Db层

我的工具集之业务层

我的工具集之UI层Base&WinForm+示例

我的工具集之UIWebForm(WebPanel&JQueryEasyUI完整代码)+

 

代码

http://u.115.com/file/bhbp52dx#
Navi.Kernel.UILayer.WebForm.rar

提取码:bhbp52dx

 

作者: Vincent.Q 发表于 2011-05-21 09:13 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架