仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 704|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:下拉菜单输出,依据输出内容主动定位

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.下拉菜单撑持输出,并依据输出内容主动定位:

参考:演员宣布于10/23/20018:58:16AM的文章“罗亭的可输出下拉框的解密简化版.”,在此出格感激相干人等。

本文为这个下拉框增添了一点小小的功效:输出可以定位在已有的选择框内。另有一个弱点,列位给改改:输出的时分不克不及够主动拉开选择框,怎样办?

functiongetLeftPostion(theObj)
{
varpos=0;
while(theObj!=null)
{
pos+=theObj.offsetLeft;
//gettheObjectwhichcontaintheObj.
theObj=theObj.offsetParent;
}
returnpos;
}
functiongetTopPostion(theObj)
{
varpos=0;
while(theObj!=null)
{
pos+=theObj.offsetTop;
//gettheObjectwhichcontaintheObj.
theObj=theObj.offsetParent;
}
returnpos;
}
functioncheckVersion()
{
varisBadVersion=true;
varcurVer=navigator.appVersion;
varpos=parseInt(curVer.indexOf("MSIE"));
if(pos>=1)
{
varintVer=parseInt(curVer.charAt(pos+5));
if(intVer>=5)
{isBadVersion=false;}
}
if(isBadVersion)
{
varmsg="Thispagemaynotbedisplayedproperly:
"+
"ThisproductrequiresMicrosoftInternetExplorer5orlaterbrowseronly.";
alert(msg);
}
}

//checkthebrowserversion
checkVersion();

//thearrayofcomboBoies
theArray=newArray();

functioncombobox(objId,objHandler)
{
this.comObj=document.all[objId];
this.comObj.selectedIndex=-1;
this.getValue=getValue;
this.doResize=doResize;
this.doChange=doChange;
this.loseFocus=loseFocus;
this.doSelectIdx=doSelectIdx;
this.focus=focus;
this.keyPress=keyPress;
this.change=change;

varstrMsg="";

//------------------------------------------------------------------------------------------------------
//createthetextobject
//------------------------------------------------------------------------------------------------------
vartxtObjIdName=objId+"_text";

if(document.all[txtObjIdName]!=null)
{
strMsg="Thefollowingid:"+txtObjIdName+"isusedinternallybytheComboBox!
"+
"Useofthisidinyourpagemaycausemalfunction.Pleaseuseanotheridforyourcontrols.";
alert(strMsg);
}

vartxtInner="<INPUTtype=textid="+txtObjIdName+"name="+txtObjIdName+"onblur="+objHandler+".loseFocus()"+"onkeyup="+objHandler+".keyPress()"+"onchange="+objHandler+".keyPress()"+"style=display:none;position:absolutevalue=>";

this.comObj.insertAdjacentHTML("afterEnd",txtInner);

this.txtObj=document.all[txtObjIdName];

//------------------------------------------------------------------------------------------------------
//end
//------------------------------------------------------------------------------------------------------

this.beResizing=false;
this.doResize();
theArray[theArray.length]=this;
}

functionloseFocus()
{
vartheComObj=this.comObj;
vartheTxtObj=this.txtObj;
vari;
theComObj.selectedIndex=-1;

if(theTxtObj.value=="")
{
return;
}

varoptLen=theComObj.options.length;
for(i=0;i<optLen;i++)
{
varcomVal=theComObj.options[i].text;
vartxtVal=theTxtObj.value;

if(comVal==txtVal)
{
theComObj.selectedIndex=i;
return;
}
}
}

functiondoResize()
{
if(!this.beResizing)
{
this.beResizing=true;
this.txtObj.style.display="none";
this.comObj.style.position="static";
this.txtObj.style.posLeft=getLeftPostion(this.comObj);
this.txtObj.style.posTop=getTopPostion(this.comObj)+1;
this.txtObj.style.posWidth=this.comObj.offsetWidth-16;
this.txtObj.style.posHeight=this.comObj.offsetHeight;
this.comObj.style.position="absolute";
this.comObj.style.posLeft=this.txtObj.style.posLeft;
this.comObj.style.posTop=this.txtObj.style.posTop;
this.offWidth=this.comObj.offsetWidth;

varstrRect="rect(0"+(this.comObj.offsetWidth)+""+this.comObj.offsetHeight+""+(this.txtObj.style.posWidth-2)+")";

this.comObj.style.clip=strRect;
this.txtObj.style.display="";
this.beResizing=false;
}
}

functiondoChange()
{
varidx=this.comObj.selectedIndex;
varopt=this.comObj.options[idx];
this.txtObj.value=opt.text;
this.txtObj.focus();
this.txtObj.select();
this.comObj.selectedIndex=-1;
}

functiongetValue()
{
returnthis.txtObj.value;
}

functiondoSelectIdx(i)
{
varoptLen=this.comObj.options.length;

if((i>=0)&&(i<optLen))
{
this.comObj.selectedIndex=i;
this.txtObj.value=this.comObj.options[i].text;
return;
}
this.txtObj.value="";
}


functionfocus()
{
this.txtObj.focus();
}

/*resizeallcomboboxwhenwindowberesized*/
functionresetAllSize()
{
vari;
for(i=0;i<theArray.length;i++)
{
theArray[i].doResize();
}
}
////////////////定位函数入手下手,我加的///////////////
functionkeyPress()
{
vartxtStr;
varcomStr;
varmaxInt=0;
vardefInt=0;
vardefJ;
txtStr=this.txtObj.value;
//document.form1.test.value=txtStr;
varj;
for(j=0;j<this.comObj.options.length;j++)
{
comStr=this.comObj.options[j].text;
varm;
for(m=0;m<txtStr.length+1;m++)
{
if(txtStr.charCodeAt(m)!=comStr.charCodeAt(m))
{
maxInt=m;
break;
}
}
if(defInt<maxInt)
{
defInt=maxInt;
defJ=j;
}
}
this.comObj.selectedIndex=defJ;
}

asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
变相怪杰 该用户已被删除
沙发
发表于 2015-1-19 15:50:20 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
小魔女 该用户已被删除
板凳
发表于 2015-1-26 23:46:40 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
小妖女 该用户已被删除
地板
发表于 2015-2-5 00:42:42 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
若相依 该用户已被删除
5#
发表于 2015-2-11 00:16:07 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
只想知道 该用户已被删除
6#
发表于 2015-3-1 19:06:16 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
若天明 该用户已被删除
7#
发表于 2015-3-10 22:08:50 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
山那边是海 该用户已被删除
8#
发表于 2015-3-17 11:10:34 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-24 08:52:52 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 05:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表