仓酷云

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

[学习教程] ASP网页编程之DW+ASP 玩动弹态二级菜单

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。菜单|静态|二级菜单一样平常情形下这类情形是来对二级的目次有效,关于如今网站传播的JS很多多少种,但都无外乎那些令像我如许的菜鸟蒙头转向的JS代码。。一会儿for...一会儿array的。
空话少说,切进正题了。

起首得建一个表,固然,假如你的表中就已建好目次的话,那这一步能够省略了。但有一点要提示:这个表是我这个例子的利用根据(不晓得如许说对不合错误)。

因为我用的表是ACCESS的,以是建表就不说了,只列出这个两个表的响应的字段名(数据库名:db.mdb):
表名:type_tree――父类
字段:type_id(主动编号)type_name(种别称号)

表名:s_type――子类
字段:id(主动编号)s_name(子种别称号)type_id(父类ID)――与父类表绝对应

如今是创建数据库毗连:

Dimconn,connStrSetconn=server.CreateObject("ADODB.Connection")connStr="Provider=Microsoft.jet.oledb.4.0;"connStr=connStr&"DataSource="&server.mappath("db.mdb")Conn.OpenconnStr
以上代码应该不必再注释了吧,都是人人经常使用的代码。。

如今进进本色性的操纵:)
二级联系关系菜单一样平常情形下都是以下拉菜单来做,这里我也不破例,一样用下拉菜单来做。
只不外这里有一个中央纷歧样哦。
就是一个用的是跳转菜单,这一点很主要,乐成与否全看这个菜单有无用对!
以下是这个跳转菜单的代码!
<selectname="first"onChange="MM_jumpMenu(parent,this,0)">
<%
sql="select[type_id],[type_name]from[type_tree]"
setrs=conn.execute(sql)获得父类的ID及称号
ifrs.eoforrs.bofthen
response.write"<option>-----</option>"假如没有纪录,就显现-----
else
whilenot(rs.eoforrs.bof)有纪录,就将父称号列出来,构成下拉。
response.write("<optionvalue=?sec="&rs(0)&"")
ifcstr(rs(0))=request.querystring("sec")then
response.write"selected"
endif
response.write(">"&rs(1)&"</option>")
rs.movenext
wend
rs.movefirst将游标移到第一条,以备上面之用。
endif
%>
</select>


哦,对了,另有一段代码忘了贴出来了,这个是跳转菜音的关头啊,看我大意的!
补上补上:
<scriptlanguage="JavaScript"type="text/JavaScript">
<!--
functionMM_jumpMenu(targ,selObj,restore){//v3.0
eval(targ+".location="+selObj.options[selObj.selectedIndex].value+"");
if(restore)selObj.selectedIndex=0;
}
//-->
</script>


以上代码贴到<head>里,是DW天生,我看不太懂甚么意义,以是不注解了:D
如今是菜单的二级部分,这里不是用跳转菜单,只是一个列表而已,以是代码跟下面的跳转菜单也就差一个onchange这个函数。
以下是这个菜单的代码,因为轮回跟判别绝对下面来讲庞大一些,年夜伙要看分明一点哦。
<selectname="second">
<%ifrs.eoforrs.bofthen
response.write("<option>--------</option>")
else
ifrequest.querystring("sec")=""then猎取跳转以后的sec值
temp=rs(0)假如为空,就把temp的值设为第一笔记录的值
else
temp=request.querystring("sec")不然就为收到的值
endif
subsql="select[s_name]from[s_type]wheretype_id="&temp&""
setsubrs=conn.execute(subsql)列出统统材料为temp的纪录
ifsubrs.eoforsubrs.bofthen
response.write("<option>-----</option>")
假如没有纪录,则在这个列表中显现"-----"
else
whilenot(subrs.eoforsubrs.bof)不然就用轮回列出统统切合前提的纪录。
response.write("<optionvalue="&subrs(0)&">"&subrs(0)&"</option>")
subrs.movenext
wend
endif
endif

封闭一切的纪录集
subrs.close
setsubrs=nothing
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</select></p>写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)
分手快乐 该用户已被删除
沙发
发表于 2015-1-20 10:07:02 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-29 06:44:25 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
若天明 该用户已被删除
地板
发表于 2015-2-5 23:29:06 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
只想知道 该用户已被删除
5#
发表于 2015-2-14 05:17:29 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
兰色精灵 该用户已被删除
6#
 楼主| 发表于 2015-3-4 04:49:26 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
再现理想 该用户已被删除
7#
发表于 2015-3-11 16:57:44 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-19 02:28:09 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-27 05:10:44 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 05:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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