【Aspx应用开发平台教程】架构篇:解析微系统构件-传说中的Web表单设计器

  套个标题党:“江湖中有哥的传说,江湖中却没有哥的身影!”,没错,这篇文章就是介绍 在 Aspx应用开发平台 微系统构件的核心组成传说中的 Web表单设计器。

 

  为什么要先从表单设计器开始呢? 自从我们的网站 http://www.doasp.cn/ 上线以来,不断有同仁给我们提意见,会员注册页面:http://www.doasp.cn/Registr.aspx 做得不够好,有很多bug,好吧,今天我就结合这个页面来分析  Web表单设计器(当然,这个页面是用 Web表单设计器 设计 )

  注册页面的主要功能:

  • 检查注册电子邮件是否注册过了?
  • 检查各个输入项目的数据是否符合要求?并给出相应的提示,
  • 所在地区的省市两级联动输入框。
  • 检查验证码是否正确?
  • 提取输入数据,提交给注册对象处理。
  • 注册成功后,向注册电子邮件发送一封激活电子邮件。

  “麻雀虽小,五脏俱全”,这样一个看似简单的页面,就需要Jquery、Ajax等诸多知识点,那我们的系统是如何实现的呢?

 

ExpandedBlockStart.gif 注册页面代码
namespace  AspxWork.MemberHelper.Controls
{
    
using  AspxWork.FormHelper.Control;
    
using  System;
    
using  System.Web.UI;
    
using  System.Web.UI.WebControls;
    
using  WebControlLibrary;
    
using  System.Data;

    
///   <summary>
    
///  会员注册控件
    
///   </summary>
     public   class  RegistrControl : AspxWork.FormHelper.Control.SkinControl
    {
        
private  Button ButtonYes;

        
public  RegistrControl()
        {
            
base .ControlName  =   " RegistrControl " ;
            IsSet 
=   true ;
            
base .Type  =  Edit_Types.Edit;
            
base .Key  =  Globals.UserId;
            
if  ( base .SkinFilename  ==   null )
            {
                
base .SkinFilename  =   " /Skins/RegistrControl.ascx " ;
            }
        }

        
private   void  ButtonYes_Click( object  sender, EventArgs e)
        {
            
// 验证数据
             if  ( ! this .ControlContainer.Validate())  return ;

            
string [] messages;
            
bool  isOK  =   true ;
            
try
            {
                DataRow row 
=  ControlContainer.Read();

                RegistrHandler.Current.Registr(row);

                messages 
=   new   string [ 2 ];

                messages[
0 =   " 您的注册信息已经成功提交! " ;
                messages[
1 =   " 系统已经将验证邮件发送到您的注册邮箱,请接收激活您的注册账户! " ;

            }
            
catch  (Exception error)
            {
                messages 
=   new   string [ 1 ];

                messages[
0 =  error.Message;
                isOK 
=   false ;
            }


            Message.ShowMessageBox(
" 保存信息 " , messages, isOK);
        }

        
protected   override   void  InitializeSkin(Control skin)
        {
            
this .ButtonYes  =  (Button)  this .FindControl( " ButtonYes " );
            
this .ButtonYes.Click  +=   new  EventHandler( this .ButtonYes_Click);
            
base .InitializeSkin(skin);
        }
    }
}

 

 

  整个注册控件的核心代码两行就完成了,是不是简单到“令人发指”的程度了?

  

  那控件的页面代码呢?

 

ExpandedBlockStart.gif 控件页面
< table   align =center >
    
< tr >
    
< td  >    
            
< div  class ="out"   >
< div  class ="in ltin tpin" >
       
< FormControl:ControlContainer  ID ="ControlContainer"   runat =server ></ FormControl:ControlContainer >    
       
</ div >
       
</ div >
      
    
</ td >
    
</ tr >
    
< tr >
    
< td  align =center >
    
< asp:Button  id ="ButtonYes"  runat =server  Text ="提交"   Width ="80px"  CssClass ="submit"   />
    
    
</ td >
    
</ tr >
                
< tr >
                
< td >
                    
< asp:validationsummary  id ="ValidationSummary"  runat ="server"   ShowSummary =true   ></ asp:validationsummary ></ TD >
                
</ tr >     
</ table >

 

 

  既然是用表单设计器设计的控件,你当然找不到任何设计代码。

  

  进入Aspx开发平台的管理后台,打开 【用户控件管理】菜单,我们看到了 用表单设计器设计的注册控件的庐山真面目。

  表单设计器设计教程视频:http://www.doasp.cn/demo/Form.htm

 

  与传统拖动控件设计窗体和控件方法相比,表单具有自动绑定和获取数据的功能,你可以任意定义设置表单控件的绑定字段和控件类型:

 

  通过控件验证设置,设置控件客户端验证JS和服务器数据验证方法,创建表单时,自动生成相应的JS验证代码。

 

  我们选用了 jQuery formValidator表单验证插件作为客户端验证,在此特别感谢作者猫冬:http://wzmaodong.cnblogs.com/

  

  在 Aspx应用开发平台 中,表单设计器的主要用于:

  • 所有微系统构件的编辑页面 都是使用 表单设计器 设计的!
  • 采用 表单设计器 设计的用户控件,取代了传统的用户控件设计方式,比如 微系统构件的设计器就是用类似的用户控件组合而成的。

  不难看出,表单设计器 大大缩短和简化设计和编码工作量,在用户需求变更,设计变化时,可实时修改表单设置,“即改即用”。

 

  此外通过【表单控件类型】管理模块,可以对表单控件类型进行管理,扩展表单控件类型,比如:

 

   在表单插入Office文档的Office控件。

 

  更多的表单设计器功能体验,可以在我们的网站 http://www.doasp.cn/ 下载体验。

 

  至于在项目中运用表单设计器能带来什么好处,我想任何一个有一年以上项目开发经验的程序员都可以总结出来,大家不妨统计一下自己做过的项目中,有多少表单,需要编写多少代码,需要多少时间和工作量就清楚了。

 

  在结束本文之前,插两句题外话,这两天园中里有两篇关于数据验证的博文比较火,浏览量和回复很多,这让我觉得很诧异!因为 猫冬同学的jQuery formValidator表单验证插件在2008年就已经发布了,我们在项目中都使用很长时间了。对于已经有非常成熟解决方案的领域,大家有那么大的热情关注,有必要吗?

 

  也许,当我们热衷于微软的一个个新技术,热衷于从WebForm升级到MVC时,却忘记了:每一次的项目开发,我们仍然在重复造轮子!为什么不能做出可以重用的代码和系统呢?

 

  也许你不赞同我的观点,但是请记住:客户过去不会,现在不会,以后也不会,为你编写的代码买单!客户购买是可以使用的软件,是软件的使用价值!

 

 

转载于:https://www.cnblogs.com/ynfengjun/archive/2010/10/13/1849729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值