|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的编程|初级5.3.2Dictionary工具示例
本书供应了一系列示例文件可用来实验剧本运转工夫库的各类属性。
本章代码的缺省页面供应了一系列可以使用的VBScript示例链接。有些示例对JScript一样无效。这些示例寄存在Chapter05目次下响应的子目次里,显现的界面如-2所示:
-2ASP剧本运转期工具示例页面
要检察Dictionary工具的运转,在菜单页面点击第一个链接,翻开名叫show_dictionary.asp的页面。这个页面显现了我们供应的Dictionary工具的内容,同意实验其属性和办法。屏幕如-3所示:
-3Dictionary工具的属性和办法
1.Dictionary的global.asa文件
随Dictionary工具示例页面供应的文件之一是global.asa。它创立并事后添补了一个会话层感化域的Dictionary工具,因而其内容在页面哀求之间不会丧失。一样平常说来(思索到可扩大性),这不是一个幻想的做法。在这个例子里,能够看到Dictionary的属性和办法的效果。
假如在本人的服务器高低载并安装示例,必需创立一个基于此global.asa文件的假造使用程序。大概将其内容增加到缺省站点的根文件夹中的global.asa文件里。在第3章报告了怎样用导游创立假造使用程序。但是关于本示例,创立一个假造使用程序最复杂的办法是在Chapter05示例文件夹内右击dictionary子文件夹,在Properties对话框的HomeDirectory选项卡里,点击Create按钮,如-4所示:
-4创立假造使用程序
在这个global.asa文件里,代码利用<OBJECT>元素创立一个会话层感化域的Scripting.Dictionary工具实例。然后在Session_onStart事务处置程序里将一系列值用Add办法放进Dictionary中,并将对Dictionary工具的援用指定给ASP会话变量MyDictionary:
<OBJECTID="objBookList"RUNAT="SERVER"SCOPE="SESSION"
PROGID="Scripting.Dictionary">
</OBJECT>
<SCRIPTLANGUAGE="VBScript"RUNAT="SERVER">
SubSession_onStart()
objBookList.Add"2610","ProfessionalActiveServerPages3.0"
objBookList.Add"1274","InstantJavaScript"
objBookList.Add"2882","BeginningASPComponents"
objBookList.Add"1797","ProfessionalASPTechniques"
objBookList.Add"1835","AD02.0ProgrammersReference"
SetSession("MyDictionary")=objBookList
EndSub
</SCRIPT>
2.Dictionary示例页面
在“Scripting.DictionaryObject”主页面里,主要的义务是失掉一个会话层感化域的Dictionary工具实例的援用。注重,这个援用是一个工具变量,因而必需在VBScript里利用Set关头字。
然后,反省一下是不是失掉了一个工具(这是个好习气),假如没有准确地创建包括global.asa文件的假造使用程序,反省一下成绩出在那里。你将看到我们本人的动静取代了ASP的毛病动静(可是注重,关于这一操纵必需封闭缺省的毛病处置)。
<%
onerrorresumenextturnofferrorhandlingtotestifobjectexists
retrieveDictionaryobjectfromuserssession
SetobjMyData=Session("MyDictionary")
IfIsObject(objMyData)ThenfoundDictionaryobjectinSession
…
%>
<P><DIVCLASS="subhead">IteratingtheDictionarywithArrays</DIV>
<%
arrKeysArray=objMyData.Keysgetallthekeysintoanarray
arrItemsArray=objMyData.Itemsgetalltheitemsintoanarray
ForintLoop=0ToobjMyData.Count-1iteratethroughthearray
Response.Write"Key:<B>"&arrKeysArray(intLoop)&"</B>Value:<B>"_
&arrItemsArray(intLoop)&"</B><BR>"
Next
%>
…
…Othercodeandcontrolsgohere…
…
<%
Else
couldnotfindDictionaryobjectinthesession
Response.Write"Dictionaryobjectnotavailableinglobal.asaforsession"
EndIf
%>
显现在页面上的Dictionary内容列表是利用Dictionary工具的Key和Items办法创立的两个数组,可以使用后面的代码遍历它们。
3.Dictionary页面控件
在Dictionary的内容列表下是一系列的HTML控件,可用于设定Dictionary工具的某些属性和实行各类办法。这些控件全体在一个<FORM>内,其ACTION属性值是本页面,以是窗体的内容提交回本页面。在后面的章节的示例里利用了一样的手艺。
在<FORM>段中,改动属性或实行一个办法是经由过程一个按钮(没有题目)完成的。用于属性和办法的值放进按钮旁的文本框或列表框中。
该页的第一个按钮用于设定Dictionary里的条目标Key属性。这里利用了一个下拉列表,能够选择一个已存在的Key值。上面的代码创立了页面内该部分的控件。为了添补列表,利用了别的一个遍历Dictionary工具的手艺,即ForEach…Next语句。代码以下:
…
<FORMACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>"METHOD="POST">
<P><DIVCLASS="subhead">TheDictionaryProperties</DIV>
<INPUTTYPE="SUBMIT"NAME="cmdChangeKey"VALUE="">
Dict</p>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 |
|