范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

ASP3。0高级编程(二)

  ASP 3.0高级编程
  (二)          ASP 3.0高级编程
  (二)			     ASP 3.0高级编程
  (二)使用Form和QueryString集合
  当用户填写页面<FORM>内容时所提供的全部值,或在浏览器地址栏输入在URL后的值,通过Form和QueryString集合为ASP脚本所用。这是在ASP代码中访问值的一种简单方法。
  1、 访问ASP集合的一般技术
  大多数ASP集合与在VB中见到的普通集合相差不多。实际上,它们是值的数组,但能通过使用一个文本字符串键(对大小不敏感)以及一个整型索引进行访问。因此,假如客户端Web页面包含的<FORM>如下:
  <FORM ACTION="show_request.asp" METHOD="POST">
  FirstName:<INPUT TYPE="TEXT" NAME="FirstName">
  LastName:<INPUT TYPE="TEXT" NAME="LastName">
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  可通过访问ASP的Form集合来访问其控件内的值:
  strFirstName = Request.Form("FirstName")
  strLastName = Request.Form("LastName")
  也可使用窗体中控件的整型索引,索引的范围从在HTML中第一个定义的控件开始,然后根据定义的顺序排序:
  strFirstName = Request.Form
  (1)
  strLastName = Request.Form
  (2)
  然而,后面的这种以整型为索引的技术不推荐使用,因为一旦有HTML中的控件发生了变化,或者插入一个新的控件,则ASP代码将得到错误的值。进一步而言,对于阅读代码的人来讲,极容易混淆。
  1) 访问集合的全部值
  可以通过引用集合把整个Form上的一系列值变成单个的字符变量,且不用提供键或索引。
  StrAllFormContent = Request.Form
  假如文本框包含值Priscilla和Descartes,则Request.Form语句将返回下列字符:
  FirstName=Priscilla&LastName=Descartes
  注意,提供的值是以名称/值对的形式出现的(即控件名称=控件值),并且每一对名称/值相互之间是用符号"&"相分隔的。假如打算把窗体中的内容传递单独的,希望得到值的标准格式的可执行应用程序或DLL,这个技术是很有用的。然而,一般说来,都是通过以窗体中控件的名称为文本键来访问集合中的内容。
  2) 遍历一个ASP集合
  有两种方式遍历一个ASP集合中的所有成员,方式与普通VB集合的基本相同。每个集合提供一个Count属性,返回的是集合中条目数量。可通过使用一个整型索引使用Count属性来遍历。
  For intLoop=1 To Request.Form.Count
  Response.Write Request.Form(intLoop) & "<BR>"
  Next
  假如先前的窗体包含Priscilla和Descartes值的两个文本框,将得到如下结果:
  Priscilla
  Descartes
  然而,更好的方法是使用For Each...Next结构。
  For Each objItem In Request.Form
  Response.Write objItem & "=" & Request.Form(objItem) & "<BR>"
  Next
  这带来的好处是既可以访问控件的名称又可访问其值。上述代码将得到如下结果:
  FirstName = Priscilla
  LastName = Descartes
  注意,一些浏览器返回到ASP的<FORM>值可能与页面上显示的顺序不尽相同。
  3) 集合成员的多值性
  在某些情况下,ASP集合中的各个成员可能不止一个值,这种情况发生在HTML定义中有几个控件有相同Name属性时。例如:
  <FORM ACTION="Show_request.asp" METHOD="POST">
  <INPUT TYPE="TEXT" NAME="OtherHobby">
  <INPUT TYPE="TEXT" NAME="OtherHobby">
  <INPUT TYPE="TEXT" NAME="OtherHobby">
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  在Form集合中,将为"OtherHobby"创建一个条目。然而,它将包括从三个文本框中得到的值。假如在提交时,用户留下了一个或多个为空,则返回的值为空字符串。假如用户在第一和第三个文本框分别输入Gardening和Mountaineering,第二个文本框为空,在我们的ASP代码中访问Request.Form("OtherHobby"),将返回字符串:
  Gardening, ,Mountaineering
  为了能够在这种情况下,访问单个值,可以用复杂一些的代码:
  For Each objItem In Request.Form
  If Request.Form(objItem).Count >1 Then ‘More than one value in this item
  Response.Write objItem & ":<BR>"
  For intLoop = 1 To Request.Form(objItem).Count
  Response.Write "Subkey" & intLoop & "value = "_
  & Request.Form(objItem) (intLoop) & "<BR>"
  Next
  Else
  Response.Write objItem & " = " & Request.Form(objItem) & "<BR>"
  End If
  Next
  对于前面的包含三个OtherHobby控件的窗体实例,这将返回:
  OtherHobby:
  Subkey 1 value = Gardening
  Subkey 2 value =
  Subkey 3 value = Mountaineering
  然而,由于很少给多个文本框相同的名字,因此这种技术很少用到。
  a) HTML中的单选或选页按钮控件
  在HTML中,需要给几个控件相同的Name属性的情况是单选(或选项)按钮,例如:
  <FORM ACTION="show_request.asp" METHOD="POST">
  I live in:
  <INPUT TYPE="RADIO" NAME="Country" VALUE="AM">America<BR>
  <INPUT TYPE="RADIO" NAME="Country" VALUE="EU">Europe<BR>
  <INPUT TYPE="RADIO" NAME="Country" VALUE="AS">Asia<BR>
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  因为用户只能选择多项中的一个(这就是给它们相同的名字的原因),将仅得到一个返回值,浏览器只能发送所选择控件的值。因此,假如这个窗体的用户已经选择了"Europez",将得到这个条目,通过遍历Form集得到其值:
  Country = EU
  由于为每个控件提供了不同的VALUE属性,反映了每个条目所对应的国家或地区的名称。假如省略了VALUE属性,浏览器将返回的值为"on",因此将得到:
  Country = on
  这是不经常用到的,因此一般对使用相同名称的单选控件使用VALUE属性。
  b) HTML复选框控件
  当一个窗体中HTML源码包含一个复选框控件时,一般都给定唯一的名称,例如:
  <FORM ACTION="show_request.asp" METHOD="POST">
  I enjoy:
  <INPUT TYPE="CHECKBOX" NAME="Reading" CHECKED> Reading
  <INPUT TYPE="CHECKBOX" NAME="Eating"> Eating
  <INPUT TYPE="CHECKBOX" NAME="Sleeping"> Sleeping
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  在这种情况下,提交窗体时,假如仅是第一和第三个复选框被选中(加标记),遍历Form集合时,会得到下列值:
  Reading = on
  Sleeping = on
  然而,假如为每个复选框提供一个值,把这个值发往服务器代替字符串"on"。例如窗体如下:
  <FORM ACTION="show_request.asp" METHOD="POST">
  I enjoy:
  <INPUT TYPE="CHECKBOX" VALUE="Hobby025" NAME="Hobby" CHECKED>_
  Swimming
  <INPUT TYPE="CHECKBOX" VALUE="Hobby003" NAME="Hobby" CHECKED>_
  Reading
  <INPUT TYPE="CHECKBOX" VALUE="Hobby068" NAME="Hobby">Eating
  <INPUT TYPE="CHECKBOX" VALUE="Hobby010" NAME="Hobby">Sleeping
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  如果除第三个复选框外,全部提交,在Request.Form集合会产生下列结果:
  Hobby = Hobby025, Hobby003, Hobby010
  假如编写更复杂一些集合遍历代码,如先前所述(单独显示每个子键),就得到这样结果:
  Hobby:Subkey 2 value = Hobby003
  Subkey 3 value = Hobby010
  需要注意的是两种情况,没有选中的控件根本不返回任何值。在第一种情况的结果里,没有欺骗性的逗号,第二种情况也没有空值。这与上述的使用文本框的相当的测试的结果不一样。使用文本框时,每个文本框都返回一个值,即使是一个空字符串。这是浏览器造成这样的结果。因此在ASP代码中访问集合时,要注意这个问题。
  上述情况一个棘手的负作用是使用复选框时,复选框值的索引与在原始的HTML中控件的位置没有任何联系,在上述的例子中第四个复选框的子键数为3,因为当窗体提交时,第二个控件没有选中。
  c) HTML列表控件
  HTML中的<SELECT>标记用来产生标准的下拉列表框,其值以一种有趣的混合方式表示。下列的窗体创建了包含5个值可供用户选择,由于包含了MULTIPLE属性,因此可以通过选择时按下Shift或Ctrl键,选择不仅一个的条目。
  <FORM ACTION="show_request.asp" METHOD="POST">
  <SELECT NAME="Hobby" SIZE="5" MULTIPLE>
  <OPTION VALUE="Hobby001">Programming</OPTION>
  <OPTION VALUE="Hobby025">Swimming</OPTION>
  <OPTION VALUE="Hobby003">Reading</OPTION>
  <OPTION VALUE="Hobby068">Eating</OPTION>
  <OPTION VALUE="Hobby010">Sleeping</OPTION>
  </SELECT><P>
  <INPUT TYPE="SUBMIT" VALUE="Send">
  </FORM>
  下图所示为该页面,显示的是选中了三个条目。
  这种特殊的情况返回的是在Form集合中单个条目,它包含选择的值(单个的<OPTION>标记中指定的VALUE属性),用逗号分隔:
  Hobby = Hobby025, Hobby003, Hobby010
  假如使用更加复杂一些的集合遍历代码(单独显示每个子键),将得到:
  Hobby:Subkey 2 value = Hobby003
  Subkey 3 value = Hobby010
  这与上述相同名称的复选框的情况相同。事实上可以认为一个SELECT列表是一列复选框的列表供选择(不是选中)相应的条目。
  然而,列表框也有指定的值,假如在<OPTION>标记中设置VALUE属性,将得到的是选择的选项的文本内容,Request.Form集将包含这样一个项目:
  Hobby = Swimming, Reading, Sleeping
  并且,同样,复杂一些的集合遍历代码将返回如下结果:
  Hobby:
  Subkey 1 value = Swimming
  Subkey 2 value = Reading
  Subkey 3 value = Sleeping
  当然,假如单个项目被选择,且在<OPTION>中提供了VALUE属性,得到结果包含的仅是:
  Hobby = Hobby025
  如果没有提供VALUE属性,得到:
  Hobby = Swimming
  这允许既可以缺省(即无VALUE)显示选项文本,也可做相应的改变。后一种情况在某些情况下是极为有用的,如要显示(一个说明的字符串)和传递一个完全不同的内容(如用一个短码代表一个说明性的字符串)。
  d) HTML提交和图像控件
  复选框和单选框是布尔型控件的例子,选中或选择返回的为"on",不像文本框和大多数其他的HTML控件,浏览器不包含没有选中或没有选择的控件的值。
  还有另外一种常用的布尔型控件,称为HTML按钮。如<INPUT TYPE="SUBMIT">、<INPUT TYPE="RESET">、<INPUT TYPE="IMAGE">、<INPUT TYPE="BUTTON">和<BUTTON>...</BUTTON>类型。
  BUTTON类型的控件不返回任何值,因其对窗体没有直接的影响。即使使用用来调用窗体的Submit方法,浏览器在任何请求中将不包含BUTTON类型控件的值。同样,一个<INPUT TYPE="RESET">按钮的值也决不会发往服务器。
  然而,输入按钮控件SUBMIT和IMAGE类型实际提交窗体给服务器,其VALUE属性包含窗体的其他控件的值(只要在HTML定义中包含一个NAME属性)。例如,这个窗体可能是向导类型Web应用程序的一部分,允许用户一步步进行或取消进程:
  <FORM ACTION="show_request.asp" METHOD="POST">
  <INPUT TYPE="SUBMIT" NAME="btnSubmit" VALUE="Next">
  <INPUT TYPE="SUBMIT" NAME="btnSubmit" VALUE="Previous">
  <INPUT TYPE="SUBIMT" NAME="btnSubmit" VALUE="Cancel">
  </FORM>
  在一个窗体中,可以包括多个SUBMIT按钮。在这种情况下,应该给每一个按钮唯一的VALUE属性,如上所示。当一个窗体被提交时,遍历Request.Form集合的值,将产生一个值,这个值依赖于按下哪个按钮用于提交这个窗体。假如用户按下的"Previous"按钮,将得到:
  btnSubmit = Previous
  因此,可查询Request.Form集合来决定下一个显示的页面,例如:
  Select Case Request.Form("btnSubmit")
  Case "Next"
  Response.Redirect "page_3.asp"
  Case "Previous"
  Response.Redirect "page_1.asp"
  Case "Cancel"
  Response.Redirect "main_menu.asp"
  End Select
  同时,也可根据需要对每个按钮使用不同的NAME属性。且选择其值包含在Form集合中的控件名称。在控件没有一个完整的标记而是随后跟着较长的文本标签的情况下,极为有用,如下图所示。
  此屏幕上的界面由下列代码产生:
  <FORM ACTION="show_request.asp" METHOD="POST">
  <B>What do you want to do now?</B><P>
  <INPUT TYPE="SUBMIT" NAME="btnNext" VALUE= "> Go on the next page<P>
  <INPUT TYPE="SUBMIT" NAME="btnPrevious" Value=" "> GO back to the previous page<P>
  <INPUT TYPE="SUBMIT" NAME="btnCancel" VALUE=" "> Cancel and go back to the main menu page<P>
  </FORM>
  在ASP页面中,接收到数据后,可以检查按扭名称提供的值来判断按下的是哪个按钮。
  If Len(Request.Form("btnNext")) Then Response.Redirect "page_3.asp"
  If Len(Request.Form("btnPrevious")) Then Response.Redirect "page_1.asp"
  If Len(Request.Form("btnCancel")) T

小学音乐如何提高学生音乐鉴赏能力论文无论是身处学校还是步入社会,大家肯定对论文都不陌生吧,通过论文写作可以培养我们的科学研究能力。那么你知道一篇好的论文该怎么写吗?以下是小编精心整理的小学音乐如何提高学生音乐鉴赏能力2020最新多元文化教育背景下流行音乐教学研究论文范文现如今,大家都经常接触到论文吧,通过论文写作可以提高我们综合运用所学知识的能力。那么你知道一篇好的论文该怎么写吗?下面是小编精心整理的多元文化教育背景下流行音乐教学研究论文,仅供参物理说理题的解答与讲授论文无论是在学校还是在社会中,大家总少不了接触论文吧,论文是一种综合性的文体,通过论文可直接看出一个人的综合能力和专业基础。相信写论文是一个让许多人都头痛的问题,以下是小编为大家整理的初中体育教学研究论文(精选4篇)无论在学习或是工作中,大家对论文都再熟悉不过了吧,通过论文写作可以提高我们综合运用所学知识的能力。一篇什么样的论文才能称为优秀论文呢?下面是小编精心整理的初中体育教学研究论文,希望体育课中学生自主学习能力提高的途径论文范文现如今,大家都不可避免地要接触到论文吧,论文是我们对某个问题进行深入研究的文章。相信许多人会觉得论文很难写吧,以下是小编精心整理的体育课中学生自主学习能力提高的途径论文范文,欢迎阅路桥施工创新管理措施论文范文(精选4篇)在平平淡淡的日常中,大家一定都接触过论文吧,论文是对某些学术问题进行研究的手段。你知道论文怎样写才规范吗?以下是小编为大家整理的路桥施工创新管理措施论文,仅供参考,希望能够帮助到大汽车配件营销论文范文现如今,大家都尝试过写论文吧,论文是学术界进行成果交流的工具。相信很多朋友都对写论文感到非常苦恼吧,下面是小编帮大家整理的汽车配件营销论文范文,希望能够帮助到大家。汽车配件营销论文初中物理如何培养学生学习兴趣论文范文在日常学习和工作中,许多人都写过论文吧,论文的类型很多,包括学年论文毕业论文学位论文科技论文成果论文等。那么你知道一篇好的论文该怎么写吗?下面是小编精心整理的初中物理如何培养学生学浅谈企业业绩评价指标论文从小学初中高中到大学乃至工作,大家都经常看到论文的身影吧,论文是进行各个学术领域研究和描述学术研究成果的一种说理文章。你知道论文怎样写才规范吗?以下是小编为大家收集的浅谈企业业绩评航空企业管理论文古典文学常见论文一词,谓交谈辞章或交流思想。当代,论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,简称之为论文。以下是小编整理的航空企业管理论文,希望能够帮助到大家!摘关于行政管理专业毕业论文范文顺应时代发展,行政管理越来越受到社会的重视了,以下是小编给大家整理收集的关于行政管理专业毕业论文范文,供大家阅读参考。关于行政管理专业毕业论文摘要职业核心能力有别于专业岗位能力,它
益气养阴法辅助化疗治疗中晚期肺癌的临床研究进展肺癌日前的死亡率,据WHO统计,每年全世界估计有超本过120万新肺癌患者,死亡约110万死于肺癌近些年来,在本很多发达国家中,肺癌在常见恶性肿瘤中男性占第一位,女性本第二位但在城市探讨临床药学专业的课程教育模式临床药学是我国新增的高等药学教育专业方向,是一个医药学交叉融合的专业,在课程设置中涵盖了药学临床医学基础医学等的相关学科,其目的是培养具有扎实的药学医学专业知识及相关社会科学知识,急性呼吸衰竭患者的急诊救护目的探讨急性呼吸衰竭的急诊救护方法。方法保持呼吸道通畅,吸氧,加强各项生命体征指标的监测。结果本组死亡10例,成活率80。结论保持呼吸道通畅,迅速吸氧,严密进行生命体征各项指标的监先天性无阴道患者的诊断与治疗先天性无阴道可分为完全性和部分性两种。完全性无阴道多合并先天性无子宫,指患者在正常阴道口部位仅有完全闭锁的阴道前庭黏膜而无阴道痕迹。部分性无阴道指患者在前庭部有浅浅凹陷,个别具有短微量泵静脉泵入胰岛素控制危重患者血糖水平的效果观察作者何艳玲叶艳清钟汝梅微量泵胰岛素危重症ICU内危重患者在应激状态下的高血糖状态极为常见,高血糖对危重患者的危害严重,如何平稳有效地控制危重患者的血糖已成为了医疗工作者最关注的问题对妇科手术病人人性化关怀的体会论文摘要随着的发展和人类健康水平的提高,我国的医疗服务体系发生了深刻的变化,也给健康赋予了更新更全面的内涵。在医患沟通的方式上,开始打破传统的功能模式,医护人员要全面收集病人资料,实时超声造影在肝脏疾病诊断中的应用毕业论文关键词超声近年来,随着超声造影技术的发展和新型超声造影剂的面市,超声造影在肝脏疾病诊断中得到较广泛的应用,并取得了长足的进步1。1实时超声造影的特点2实时超声造影在肝脏疾病肝脏撞击伤后气腹压力对肝动脉血流量的影响毕业论文作者赵松麻晓林张连阳李勇关键词肝脏损伤腹腔镜气腹肝动脉血流量Effectsofpneumoperitoneumonthehepaticarterialflowincontr肝移植术后乙型肝炎病毒再感染的预防与诊治毕业论文作者夏杰杨占宇陈佳廖睿张南郭鹏周吉军王宇明关键词肝移植乙型肝炎病毒再感染乙型肝炎免疫球蛋白PreventionandtreatmentofHBVreinfectionaft头痛宁胶囊与西比灵联合治疗偏头痛的临床观察目的观察头痛宁胶囊与西比灵联合偏头痛的临床疗效。方法将120例偏头痛患者随机分为3组(每组各40例),中药组用头痛宁胶囊,西药组用西比灵胶囊,联合组使用头痛宁胶囊和西比灵胶囊,疗程子宫内膜上皮内瘤变与子宫内膜癌的诊疗子宫内膜上皮内瘤变(EIN)为子宫内膜癌的癌前病变,包括子宫内膜腺瘤型增生过长伴细胞不典型及子宫内膜原位癌。子宫内膜癌为女性生殖道常见的恶性肿瘤之一,近年来发病率有上升趋势。本病多