仓酷云

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

[学习教程] ASP编程:多级挑选成绩的ASP完成(能够进精髓吗?...

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。精髓|成绩在开辟收集使用程序时,经常会碰到多级选择的成绩,即“子”一级选择的备选项信息依附于“父”一级选择的数据。比方:在一个网页中包括两个select输出控件,一个用于列表备选的国度信息(“父”一级选择),另外一个用于列表省分信息(“子”一级选择)。当用户在第一个select输出控件(“父”一级选择)当选中国度后,另外一个select输出控件(“子”一级选择)的选项也要变成响应国度的省、州选项,而他们之间的干系静态地保留在数据库中。
提出成绩
传统的办理办法能够形貌为:用户选中“父”一级选择后,经由过程form提交的体例,由响应的处置程序从数据库中提取“子”一级选择的信息,并革新客户端页面中“子”一级选择的数据。
接纳这类办法的弱点是:
●必需编写一个或多个ASP程序分离处置用户的哀求,程序代码质量不高;
●当级数凌驾两级时,必需办理“祖父”一级的选择信息的保留成绩;
●每次用户的修正或扫瞄多级信息,都必需反复提交以取得多级信息,如许,增添了服务器的包袱,呼应速率较慢。
针对以上计划中存在的成绩,笔者在理论中找到了一种办理办法。该办法天真使用HTML言语中的输出把持工具hidden,当hidden中的数据量小于2K时,可一次性将多级信息下载到客户端,并经由过程服务器端剧本与客户端剧本的配合感化,间接在客户端完成多级选择。
办理办法
HTML言语中的输出把持工具hidden能够经由过程name-value的体例存储字符串数据,并且该把持工具在客户端界面上不成见。
使用该输出把持,能够将数据库中多级选择信息依照必定的划定规矩编码,分离寄存在多个hidden工具中。当用户点击父级选项时,客户端程序依照必定的对应干系查找响应的hidden工具,并将hidden工具中的字符串信息解码,革新子级选择工具。
个中,服务器端剧本必要完成的事情是将数据库中的多级信息依照按次顺次提取,而且将同级的信息数据依照必定划定规矩编码构成字符串,存储在分歧的hidden工具中;而客户端剧本必要完成的事情是将hidden工具中的字符串数据解码,并显现在子级选择工具中。
必要出格指出的是,数据的字符串编码是此种办法乐成与否的一个关头要素,因而必需包管编码办法准确无误。
详细完成
上面以国度、省分两级选择为例,先容在ASP中多级选择的详细完成办法。
在SQLServer7.0数据库CountryDoc中寄存两级信息的表分离为CountryNamechar(20)和ProvinceNamechar(20)。
思索到国度名、省/州名为字符串数据,且不包括字符“0”,因而在选择编码办法时,接纳5个一连的字符“0”作为分歧数据项之间的分开符。编码后的省分数据详细情势为“北京00000上海00000黑龙江00000吉林”。
<html><head>
<scriptlanguage=vbscript>
dimProvinceArr()
dimProvinceNum,ProvinceStr
//字符串解码,将由‘00000分隔的选项回存到响应的静态数组中
submyStrToArray
dimi,tmpInt,tmpStr
redimProvinceArr(ProvinceNum-1)
tmpStr=ProvinceStr
fori=0toProvinceNum-1step1
tmpInt=InStr(tmpStr,“00000”)
ProvinceArr(i)=Left(tmpStr,tmpInt-1)
tmpStr=Right(tmpStr,Len(tmpStr)-tmpInt-4)
next
endsub

//向省级选择select工具中增加一个备选项
subAddOption(OptionStr)
dimoOption
setoOption=document.createElement(“OPTION”)
oOption.value=OptionStr
oOption.text=OptionStr
form1.ProvinceList.add(oOption)
endsub

//扫除省级选择select工具的一切备选项(第一项除外)
subClearOption
dimcount,i
count=form1.ProvinceList.length
ifcount<=1then
exitsub
endif
fori=count-1to1step-1
form1.ProvinceList.remove(i)
next
endsub
//当用户选中国度级备选项时,更新省级备选项中的数据
subCountryList_onChange
dimCountryName,i
//取得国度称号
CountryName=form1.CountryList.value
ifCountryName=“none”then
exitsub
endif
//依据国度称号查找响应的hidden工具,并从中掏出省分、州数据(字符串)
fori=0toform1.elements.length-1step1
ifinStr(form1.elements(i).name,CountryName&“Arr”)>0andform1.elements(i).tagName=“INPUT”then
ProvinceStr=form1.elements(i).value
endif
ifform1.elements(i).tagName=“INPUT”andinStr(form1.elements(i).name,CountryName&“Num”)>0then
ProvinceNum=form1.elements(i).value
endif
next
ifProvinceNum=0then
exitsub
endif
//扫除省级选择中的数据(除第一项之外)
ClearOption
//字符串解码(字符串情势的省级数据寄存在全局变量ProvinceStr中)
myStrToArray
//从头机关省级选择中的数据信息
fori=0toProvinceNum-1step1
AddOption(ProvinceArr(i))
next
form1.ProvinceList.selectedIndex=0
endsub
</script>
</head>
<body>
<formname=form1>
<tablealign=center>
<tr><td>国度</td>
<td>省分、州</td></tr>
<tr><td><selectname=CountryList>
<optionvalue=none>_______________</option>
<%@Language=VBScript%>
<%dimCountryArr()%>
<%i=0%>
//提取表中的一切国度选项,并写进国度级选择控件
<%sqlText=“selectdistinctCountryNamefromCountryDoc”%>
<%setrs=conn.Execute(sqlText)%>
<%dowhilenotrs.EOF%>
<%i=i+1%>
<%redimpreserveCountryArr(i)%>
//将国度级数据写进静态数组中
<%CountryArr(i-1)=Trim(rs(“CountryName”))%>
<optionvalue=<%=Trim(r(“CountryName”))%>>
<%=Trim(rs(“CountryName”))%></option>
<%rs.MoveNext%>
<%loop%>
<%rs.Close%>
<%CountryNum=I%>
</select>
</td><td>
<selectname=ProvinceList>
<optionvalue=none>_______________</option>
</select></td></tr></table>
//顺次从静态数组中提取国度称号,并提取对应的省级数据信息
<%fori=0toCountryNum-1step1%>
<%temp1=CountryArr(i)%>
<%ProvinceNum=0%>
<%sqlText=“selectcount(*)asRecordNumfromCountryDocwhereCountryName=‘“&temp1&”’”%><%setrs=conn.Execute(sqlText)%>
<%ProvinceNum=rs(“RecordN</p>当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题
谁可相欹 该用户已被删除
沙发
发表于 2015-1-20 09:31:05 来自手机 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-25 09:56:14 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
再现理想 该用户已被删除
地板
发表于 2015-1-25 21:41:36 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
不帅 该用户已被删除
5#
发表于 2015-2-2 22:35:33 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
小妖女 该用户已被删除
6#
发表于 2015-2-3 12:27:13 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
只想知道 该用户已被删除
7#
发表于 2015-2-8 23:15:30 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
若天明 该用户已被删除
8#
发表于 2015-2-26 12:44:29 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
9#
发表于 2015-3-8 15:15:33 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
冷月葬花魂 该用户已被删除
10#
 楼主| 发表于 2015-3-16 02:51:08 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
分手快乐 该用户已被删除
11#
发表于 2015-3-22 19:08:17 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 04:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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