全面OO asp,构造属于自己的WebForm对象!

原创 2004年07月16日 23:27:00

文件名:form.js

<%
//start for element
function elements(){
 this.name = "";
 this.value = "";
 this.desc = "";
 this.pattern = false;
 this.maxv = false;
 this.minv = false;
 this.maxl = false;
 this.minl = false;
 this.required = false;
 this.html = "";
 this.comstring = "";
 this.attr = "";
 this.avai = true;

 this.Init = function(strName,strValue){
  this.name = strName;
  this.value = strValue;
  if(!isEmpty(Request.QueryString(strName))){
   this.value = Request.QueryString(strName);
  }
  if(!isEmpty(Request.Form(strName))){
   this.value = Request.Form(strName);
  }
  /*if(!isEmpty(Request.Cookies(strName))){
   this.value = Request.Cookies(strName);
  }
  if(!isEmpty(Request.ServerVariables(strName))){
   this.value = Request.ServerVariables(strName);
  }
  if(!isEmpty(Session(strName))){
   this.value = Session(strName);
  }
  if(!isEmpty(Application(strName))){
   this.value = Application(strName);
  }*/
 }
 this.get = function(strVarname){
  return eval("this."+strVarname);
 }
 
 this.set = function(strVarname,strVarvalue){
  eval("this."+strVarname+"="+strVarvalue);
 }
 
 this.setDesc = function (strDesc){
  this.desc = strDesc;
 }
 
 this.setPattern = function (strPattern){
  this.pattern = eval("/"+strPattern+"/g");
 }
 
 this.setCom = function (strCom){
  this.comstring = strCom;
 }
 
 this.setLLimit = function (intMin,intMax){
  this.maxl = intMax;
  this.minl = intMin;
 }
 
 this.setVLimit = function (intMin,intMax){
  this.minv = intMin;
  this.maxv = intMax;
 }
 
 this.setRequired = function(bRequired){
  this.required = bRequired;
 }
 
 this.setAttr = function(strAttribute){
  this.attr = strAttribute;
 }
 
 this.basicTest = function(){

  if(this.required != false){
   if(this.value.length == 0){
    this.addErr(this.desc+"是必填项");
    this.avai = false;
   }
  }
  
  if(this.pattern != false){
   if(!this.pattern.test(this.value)){
    this.addErr(this.desc+"含有非法字符");
    this.avai = false;
   }
  }
  
  if(this.maxv != false){
   if(this.value > this.maxv){
    this.addErr(this.desc+"不能大于"+this.maxv);
    this.avai = false;
   }
  }
  
  if(this.minv != false){
   if(this.value < this.minv){
    this.addErr(this.desc+"不能小于"+this.minv);
    this.avai = false;
   }
  }
  
  if(this.minl != false){
   if(this.value.length < this.minl){
    this.addErr(this.desc+"长度不能小于"+this.minl);
    this.avai = false;
   }
  }
  
  if(this.maxl != false){
   if(this.value.length > this.maxl){
    this.addErr(this.desc+"长度不能大于"+this.maxl);
    this.avai = false;
   }
  }
  
  if(this.comstring.length != 0){
   if(this.value != this.comstring){
    this.addErr();
    this.avai = false;
   }
  }
  
  if(this.avai == false){
   return false;
  }else{
   return true;
  }
 }

 this.basicBuild = function(){
  //nothing
 }
}
elements.prototype = new basic;
//end for element

//start for input
function text(name,value){
 this.base = elements;
 this.type = "text";
 
 this.textTest = function(){
  if(this.basicTest() == false){
   return false;
  }
 }

 this.textBuild = function(){
  this.basicBuild();
 }
}
text.prototype = new elements;
//end for text

//start for select
function select(name,value){
 this.base = elements;
 this.type = "select";
 this.value_array = new Array();
 this.options_str = "";
 
 //value mixed: string,explode with ","
 this.buildValue = function(value){
  var tmp = new Array();
  if (typeof(value) == "object"){
   for (var i=0; i<value.length; i++){
    tmp[i] = new Array();
    if(typeof(value[i]) == "string"){
     tmp[i][0] = value[i];
     tmp[i][1] = value[i];
    }else{
     tmp[i] = value[i];
    }
   }
   this.value_array = tmp;
  }else if(typeof(value) == "string"){
   this.buildValue(value.split(","));
  }
 }

 //build html
 this.buildOptions = function(){
  for (var i=0; i<this.value_array.length; i++){
   this.options_str += "<option value="+this.value_array[i][0]+" ";
   if(this.value.Count <= 1){
    if(this.value_array[i][0] == this.value){
     this.options_str +="selected";
    }
   }else{
    tmpv = String(this.value);
    tmpv = tmpv.split(",");
    for (var j=0; j<tmpv.length; j++){
     if ( this.value_array[i][0] == Trim(tmpv[j]) ){
      this.options_str += "selected";
     }
    }
   }
   this.options_str +=">"+this.value_array[i][1]+"</option>/n";
  }
 }

 this.selectTest = function(){
  this.basicTest();
 }

 this.selectBuild = function(){
  this.basicBuild();
  this.buildOptions();
 }
}
select.prototype = new elements;
//end for select

function radio(){
 this.base = elements;
 this.type="radio";
 this.value_array = new Array();

 this.radioTest = function(){
  return this.basicTest();
 }

 this.radioBuild = function(){
  this.basicBuild();
 }

 //
 this.radioAssign = function(oTpl,fhandle,broken,len){
  oTpl.setBlock(fhandle,this.name.toUpperCase(),this.name);
  if (typeof(broken) == "undefined"){
   broken = "&nbsp;";
  }
  if (typeof(len) == "undefined"){
   len = 1;
  }
  for (var i=0; i<this.value_array.length; i++){
   oTpl.setVar("value",this.value_array[i][0]);
   oTpl.setVar("text",this.value_array[i][1]);
   if(this.value == this.value_array[i][0]){
    oTpl.setVar("checked","checked");
   }else{
    oTpl.setVar("checked","");
   }
   if (i%len == (len-1)){
    oTpl.setVar("broken",broken);
   }else{
    oTpl.setVar("broken","");
   }
   oTpl.parse(this.name,this.name.toUpperCase(),true);
  }
 }

 this.buildValue = function(value){
  var tmp = new Array();
  if (typeof(value) == "object"){
   for (var i=0; i<value.length; i++){
    tmp[i] = new Array();
    if(typeof(value[i]) == "string"){
     tmp[i][0] = value[i];
     tmp[i][1] = value[i];
    }else{
     tmp[i] = value[i];
    }
   }
   this.value_array = tmp;
  }else if(typeof(value) == "string"){
   this.buildValue(value.split(","));
  }
 }

}
radio.prototype = new elements;
//end for radio

//start for checkbox
function checkbox(){
 this.base = elements;
 this.type="checkbox";
 this.value_array = new Array();

 this.checkboxTest = function(){
  return this.basicTest();
 }

 this.checkboxBuild = function(){
  this.basicBuild();
 }

 //
 this.checkboxAssign = function(oTpl,fhandle,broken,len){
  oTpl.setBlock(fhandle,this.name.toUpperCase(),this.name);
  if (typeof(broken) == "undefined"){
   broken = "&nbsp;";
  }
  if (typeof(len) == "undefined"){
   len = 1;
  }
  for (var i=0; i<this.value_array.length; i++){
   oTpl.setVar("value",this.value_array[i][0]);
   oTpl.setVar("text",this.value_array[i][1]);
   if(this.value.Count <= 1){
    if(this.value == this.value_array[i][0]){
     oTpl.setVar("checked","checked");
    }else{
     oTpl.setVar("checked","");
    }
   }else{ 
    tmpv = String(this.value);
    tmpv = tmpv.split(",");
    var checked = "";
    for (var j=0; j<tmpv.length; j++){
     if (this.value_array[i][0] == Trim(tmpv[j])){
      checked = "checked";
     }
    }
    oTpl.setVar("checked",checked);
   }
   //for broken
   if (i%len == (len-1)){
    oTpl.setVar("broken",broken);
   }else{
    oTpl.setVar("broken","");
   }
   oTpl.parse(this.name,this.name.toUpperCase(),true);
  }
 }

 this.buildValue = function(value){
  var tmp = new Array();
  if (typeof(value) == "object"){
   for (var i=0; i<value.length; i++){
    tmp[i] = new Array();
    if(typeof(value[i]) == "string"){
     tmp[i][0] = value[i];
     tmp[i][1] = value[i];
    }else{
     tmp[i] = value[i];
    }
   }
   this.value_array = tmp;
  }else if(typeof(value) == "string"){
   this.buildValue(value.split(","));
  }
 }
}
checkbox.prototype = new elements;
//end for checkbox

//start for form
function form(fname){
 this.name = fname;
 this.action = "";
 this.qstring = "";
 this.method = "post";
 this.elements = new Array();
 this.htmlstr = "";
 this.head = "";
 this.foot = "</form>";
 this.avai = true;
 
 this.setAction = function(strAction){
  this.action = strAction;
 }
 
 this.addElement = function(oElement){
  this.elements.push(oElement);
 }
 
 this.formTest = function(){
  for(var i=0;i<=this.elements.length - 1;i++){
   if(eval("this.elements[i]."+this.elements[i].type+"Test()") == false){
    this.addErr(this.elements[i].getErrorMsg());
    this.avai = false;
   }
  }
  return this.avai;
 }
 
 this.addQueryString = function(strParam,strValue){
  //todo;
 }
 
 this.assignfortpl = function(oTpl){
  this.formTest();
  this.formBuild();
  //打印表单错误信息
  oTpl.setVar(this.name+"_errormsg",this.getErrorMsg());
  for(var i=0;i<this.elements.length;i++){
   oTpl.setVar(this.elements[i].name+"_value",this.elements[i].value);
   if (this.elements[i].type == "select"){
    oTpl.setVar(this.elements[i].name+"_options_str",this.elements[i].options_str);
   }
  }
 }

 this.formBuild = function(){
  for(var i=0;i<=this.elements.length - 1;i++){
   eval("this.elements[i]."+this.elements[i].type+"Build()");
  }
 }
}
form.prototype = new basic;
//end for form
//%>

全面OO asp,构造属于自己的WebForm对象!(实例)

效果图:http://blog.csdn.net/xiaoqy/gallery/image/4414.aspx templates.js:http://blog.csdn.net/xiaoqy/arc...
  • XiaoQy
  • XiaoQy
  • 2004年07月16日 23:36
  • 821

全面OO asp,构造属于自己的WebForm对象!(序言),基础类以及常用函数

/* ====================================================================== JScript Source File -- Cre...
  • XiaoQy
  • XiaoQy
  • 2004年07月16日 23:29
  • 819

asp webForm 三层框架的简单实例(一)未完待续--

本文通过一个简单的登录实例,介绍了基本的WebForm开发方式的MVC三层框架方式。本文,是个人作为一个初学者,对webform三层框架的总结,配有相应的源代码,希望对同样迷惑的你有所帮助,如果有不对...
  • shaoyanning
  • shaoyanning
  • 2017年02月19日 18:19
  • 824

第一章 .Net 控件开发(WebForm) 开发简单自定义控件

1、 上章结束的时候已经把整个自定义简单控件的实现都讲好了。打算准备讲复合控件,但是还是有必要把自定义简单控件的流程和生命周期来讲下。 2、 流程: (1) 继承WebControl类,重写Ren...
  • ruiqi317
  • ruiqi317
  • 2011年09月18日 23:09
  • 3458

asp.net webform中的相对地址和绝对地址

先看一下什么是相对地址和绝对地址,举个例子:我想去某个地方,有两种方法可以知道地方所在地,第一种:这个地方所在的绝对地址,比如在浙江省杭州市西湖区某某小区多少号等,这个确切的地址称为绝对地址,对于计算...
  • GodLoveshun
  • GodLoveshun
  • 2014年03月24日 23:29
  • 2015

ASP.NET 4.0 Webform传统开发模式下如何压缩css, js

网上查了很多压缩css/js的方法,感觉还是用ms自己的简便,其他的虽然功能强大,但是比较复杂,要简单化... 在ASP.NET MVC中新建一个Web工程后,那些Bundle功能已经写在代码中了,...
  • dyllove98
  • dyllove98
  • 2013年04月04日 00:57
  • 3788

Asp.Net WebForm ListView的使用

ListView的搭建步骤: 1.将各个层搭建好,然后添加好引用,最后写好方法。 2.拖ListView控件,然后切换到设计视图。 3.在对象数据源,就是右箭头图标,点击一下。会弹出一个框叫ListV...
  • lichunlin1994
  • lichunlin1994
  • 2016年12月09日 13:41
  • 1159

避开WebForm天坑,拥抱ASP.Net MVC吧

有鹏友在如鹏网的QQ群中提了一个问题: 请问,在ASP.Net中如何隐藏一个MenuItem,我想根据不同的权限,对功能菜单进行隐藏,用style不行。   如果要仅仅解答这个问题,很好解答,答...
  • cownew
  • cownew
  • 2015年12月24日 15:59
  • 6883

什么是js面向对象,特点,怎么写构造函数

l面向对象编程(OOP)的特点 l抽象:抓住核心问题 l封装:不考虑内部实现,只考虑功能使用 l继承:从已有对象上,继承出新的对象 l多重继承 l多态 l对象的组成...
  • wiaiya
  • wiaiya
  • 2016年10月21日 15:31
  • 954

JS构造对象

JS中定义类的方式有很多种:  1、工厂方式    function Car(){     var ocar = new Object;     ocar.color = "blue";  ...
  • kyleing
  • kyleing
  • 2014年09月18日 14:29
  • 1716
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:全面OO asp,构造属于自己的WebForm对象!
举报原因:
原因补充:

(最多只允许输入30个字)