网易学院—第四章 asp网络编程.doc_第1页
网易学院—第四章 asp网络编程.doc_第2页
网易学院—第四章 asp网络编程.doc_第3页
网易学院—第四章 asp网络编程.doc_第4页
网易学院—第四章 asp网络编程.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用ASP编程实现网络内容快速查找有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很。接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么。如此一来,我还是得着手对付代码它们。 我的朋友开了一个小型站点,原本是我设计的。这是个检验我想法的好平台。所以我写出代码,上传了文件。真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错。以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深。说是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点。我的代码就可以针对这个问题,保险用户只要点一次鼠标就找到目标。在我的例子里,假设有个用户上了Yahoo,检索关键字为Fireplace Accessories(飞行器材配件)。在给出的结果里,他来到我朋友的站点,将看到你正在搜索Fireplace Accessories等字样的画面。接着他会按照网站上的提示,直接到想要去的页面。 你要作的第一步,是在global.asa文件中建立一个初始变量,放置在你的Sub Session_onStart()程序中。 Sub Session_onStart() Referer = Trim(Request.ServerVariables(HTTP_REFERER) If Referer = Then Referer = None End If Session(Referer) = Referer End Sub接着我们来着手看看如何完成程序的主要功能。 因为url经过了编码,所以首先要把来访者主机的指向数据还原成对我们有用的东西。建立一个ASP页面,叫它decode.asp,是我们程序的主干。第一个功能是要对编码过的指向头进行解码。程序有点长,而且很直接,没有什么转弯抹角,如果你嫌麻烦,不如到的网虫进修班上面找到本文,用拷贝/粘贴大法吧。 源代码 第二件要作的事情是:从URL头信息里分离出查询部分-这个才是我们需要的。 从指向URL中分离查询字段。 Function isProduct(pStr) If pStr And lCase(pStr) none Then 向后搜索字段 temp = inStrRev(pStr, /) 得到目录分离的位置 tempStr = Right(pStr, temp) 得到有关数据长度 temp2 = Len(pStr) 得到查询数据行 pStr = Mid(pStr, temp, temp2) 设定返回功能的值 isProduct = pStr Else isProduct = End If End Function接着是要确立查找的明确标准。为达到这个目的,建立两个静态空间指?查找指向数据 Function Finder(byRef prodList, byVal refList) 模糊查询 refList = lCase(refList) 通过指针循环查找匹配字段 For i = 0 To uBound(prodList) - 1 If inStr(refList, lCase(prodList(i, 0) Then 找到匹配 tHolder = tHolder & Are You looking For _ & _ & prodList(i, 0) & End If 第二次循环 Next 返回结果 Finder = tHolderEnd Function通过一个inclue,把我们做好的decode.asp放到需要此功能的任何页面,大功告成啦。 具体如下: 如果指向头不为空,调出此功能If lCase(Session(Referer) none OR Session(Referer) Then 解析指向数据 Response.Write vbCrLf & _ & Finder(pArray, URLDecode(isProduct(Session(Referer) _ & & vbCrLf End If用ASP编写下载网页中所有资源的程序看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目录,存放资源。download.asp?url=你要下载的网页 download.asp代码如下:%Server.ScriptTimeout=9999function SaveToFile(from,tofile) on error resume nextdim geturl,objStream,imgs geturl=trim(from) Mybyval=getHTTPstr(geturl) Set objStream = Server.CreateObject(ADODB.Stream) objStream.Type =1 objStream.Open objstream.write Mybyvalobjstream.SaveToFile tofile,2 objstream.Close() set objstream=nothing if err.number0 then err.Clear end function function geturlencodel(byval url)中文文件名转换 Dim i,code geturlencodel= if trim(Url)= then exit function for i=1 to len(Url) code=Asc(mid(Url,i,1) if code0 Then code = code + 65536 If code255 Then geturlencodel=geturlencodel&%&Left(Hex(Code),2)&%&Right(Hex(Code),2) else geturlencodel=geturlencodel&mid(Url,i,1) end if next end function function getHTTPPage(url) on error resume next dim http set http=Server.createobject(Msxml2.XMLHTTP) Http.open GET,url,false Http.send() if Http.readystate4 then exit function getHTTPPage=bytes2BSTR(Http.responseBody) set http=nothing if err.number0 then err.Clear end function Function bytes2BSTR(vIn) dim strReturn dim i,ThisCharCode,NextCharCode strReturn = For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i,1) If ThisCharCode &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode) i = i + 1 End If Next bytes2BSTR = strReturn End Function function getFileName(byval filename) if instr(filename,/)0 thenfileExt_a=split(filename,/) getFileName=lcase(fileExt_a(ubound(fileExt_a) if instr(getFileName,?)0 thengetFileName=left(getFileName,instr(getFileName,?)-1)end ifelsegetFileName=filenameend ifend function function getHTTPstr(url) on error resume next dim http set http=server.createobject(MSXML2.XMLHTTP) Http.open GET,url,false Http.send() if Http.readystate4 then exit function getHTTPstr=Http.responseBody set http=nothing if err.number0 then err.Clear end function Function CreateDIR(ByVal LocalPath) 建立目录的程序,如果有多级目录,则一级一级的创建 On Error Resume Next LocalPath = Replace(LocalPath, , /) Set FileObject = server.CreateObject(Scripting.FileSystemObject) patharr = Split(LocalPath, /) path_level = UBound(patharr) For I = 0 To path_level If I = 0 Then pathtmp = patharr(0) & / Else pathtmp = pathtmp & patharr(I) & / cpath = Left(pathtmp, Len(pathtmp) - 1) If Not FileObject.FolderExists(cpath) Then FileObject.CreateFolder cpath Next Set FileObject = Nothing If Err.Number 0 Then CreateDIR = False Err.Clear Else CreateDIR = True End If End Function function GetfileExt(byval filename) fileExt_a=split(filename,.) GetfileExt=lcase(fileExt_a(ubound(fileExt_a) end function function getvirtual(str,path,urlhead)if left(str,7)=http:/ thenurl=strelseif left(str,1)=/ thenstart=instrRev(str,/)if start=1 thenurl=/elseurl=left(str,start)end ifurl=urlhead&urlelseif left(str,3)=./ thenstr1=mid(str,inStrRev(str,./)+2)ar=split(str,./)lv=ubound(ar)+1ar=split(path,/)url=/for i=1 to (ubound(ar)-lv)url=url&ar(i)nexturl=url&str1url=urlhead&urlelseurl=urlhead&strend ifgetvirtual=urlend function示例代码dim dlpathvirtual=/downweb/truepath=server.MapPath(virtual)if request(url) thenurl=request(url)fn=getFileName(url)urlhead=left(url,(instr(replace(url,/,),/)+1)urlpath=replace(left(url,instrRev(url,/),urlhead,)strContent = getHTTPPage(url)mystr=strContentSet objRegExp = New Regexp objRegExp.IgnoreCase = True objRegExp.Global = True objRegExp.Pattern = (src|href)=.+? Set Matches =objRegExp.Execute(strContent) For Each Match in Matches str=Match.Valuestr=replace(str,src=,)str=replace(str,href=,)str=replace(str,)str=replace(str,)filename=GetfileName(str)getRet=getVirtual(str,urlpath,urlhead)temp=Replace(getRet,/,*)start=instr(temp,/)endt=instrRev(temp,/)-start+1if start0 thenrepl=virtual&mid(temp,start)& response.Write repl&brmystr=Replace(mystr,str,repl)dir=mid(temp,start,endt)temp=truepath&Replace(dir,/,)CreateDir(temp)response.Write getRet&|&temp&filename&brbrSaveToFile getRet,temp&filenameend ifNext set Matches=nothingend if%用ASP实现网页BBS传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要制作自己的网页BBS确实困难不小。ASP(Active Server Pages 动态服务器主页)的出现,使我们眼前一亮,能不能利用ASP实现网页BBS呢?回答当然是肯定的。ASP的诱人之处就在于它提供了一种简单易学的脚本,并带有许多内置的对象,从而提供了一条简捷的编程之路。 该BBS主要由用户注册(浏览器端)、用户注册(服务器端)、加帖子(浏览器端)、加帖子(服务器端)、帖子具体内容的显示和回复以及所有帖子的显示六个部分组成,其中用户信息存放在数据库author.mdb中,帖子存放在数据库bbs.mdb中。它们均为ACCESS数据库,结构分别如表1、表2所示。 表1 author.mdb 字段名 数据类型 长度 说明 Authname 文本 24 用户名 Password 文本 10 密码 表2 bbs.mdb 字段名 数据类型 长度 说明 ID 文本 4 帖子的编号 Authname 文本 24 用户名 Subject 文本 80 主题 Content 备注 内容 Adddate 日期/时间 加贴的日期 Visitnum 数字 长整型 访问人数 Answernum 文本4 所回复帖子的编号 (缺省为本身的编号) Addtime 日期/时间 加贴的时间 Topnum 文本4 第一层回复帖子的编号 具体实现方法如下所示,其中asp文件和数据库存放在“/hosp/asp中,其它htm 文件存放在“/hosp文件中,img文件存放在“/hosp/images。 1、 用户注册(浏览器端)login.htm:由用户输入相关信息,通过表单传送到服 务器。 html headtitle register a new user/titlehead body FORM METHOD=POST ACTION=/hosp/asp/register.aspP H2为了标识方便,请您注册一个用户名称/H2 用户:INPUT TYPE=TEXT name=name SIZE=24P 密码:INPUT TYPE=password name=password SIZE=24P INPUT TYPE=SUBMIT VALUE=注 册 INPUT TYPE=RESET VALUE=清 除 a href=/hosp/asp/dispbbs.asp返回论坛/aP /body /html 2、 用户注册(服务器端)Register.asp:利用REQUEST.FORM(表单栏位名)接收表单信息,采用ADO技术与数据库author.mdb连接,并将表单信息存入author.mdb中。 html headtitle 存用户信息 /title/head body !- 取客户浏览器输入的用户名和密码 - % name=REQUEST.FORM(name) code=REQUEST.FORM(password) !- 与author.mdb连接 - Set Connection=Server.CreateObject(ADODB.Connection) Connection.Open author Set RS=Connection.Execute(SELECT * FROM author) !- 如果该用户名已存在,请重输,否则存入数据库 - If Not RS.EOF Then % 该用户名已被注册,请您重新a href=/hosp/login.htm注册/a新用户名! % Else Connection.Execute(INSERT INTO author(authname,password) Values( &name& , &code& ) RS.Close Connection.Close % CENTERB% =name %/B 您已注册成功!P a href=/hosp/asp/dispbbs.asp返回论坛/a/CENTER % End If % /body /html 3、 加帖子(浏览器端)bbs_add.htm:由用户输入待加入帖子的相关信息,并传到服务器。 html headtitle a sample form /title/head body background=/hosp/images/backgrnd.gif FORM METHOD=POST ACTION=/hosp/asp/bbs.aspP 姓名: INPUT NAME=name SIZE=28 密码: INPUT TYPE=password NAME=code SIZE=28P 主题:INPUT NAME=subject SIZE=66P 内容:P TEXTAREA NAME=content ROWS=20 COLS=72/TEXTAREAP CENTERINPUT TYPE=SUBMIT VALUE=发布信息 INPUT TYPE=RESET VALUE=清除信息/CENTER /FORM /body /html 4、 加帖子(服务器端)bbs.asp:接收帖子内容,并存入bbs.mdb中。 html headtitlebbs.asp/title/head body % name=REQUEST.FORM(name) code=REQUEST.FORM(code) subject=REQUEST.FORM(subject) content=REQUEST.FORM(content) curdate=Date curtime=Time !- 与author.mdb连接 - Set Connection = Server.CreateObject(ADODB.Connection) Connection.Open author Set RS = Connection.Execute(SELECT * FROM author WHERE authname= &name& AND password= &code& ) !- 判断用户名与密码是否匹配 - If Not RS.EOF Then !- 打开数据文件,该文件存放帖子的编号,每加一个帖子,编号加1 - Set FileObject = Server.CreateObject(Scripting.FileSystemObject) Set InStream = FileObject.OpenTextFile (c:inetpubwwwroothospaspdata.id, 1, False, False) number = Cstr(InStream.Readline+1) Set OutStream = FileObject.CreateTextFile (c:inetpubwwwroothospaspdata.id, True, False) OutStream.WriteLine number If Request.QueryString(ID)= Then manswernum=number Else manswernum=Request.QueryString(ID) End If If Request.QueryString(topnum)= Then mtopnum=number Else mtopnum=Request.QueryString(topnum) End If Set OutStream = Nothing !- 与bbs.mdb连接,将帖子信息存入数据库中 - Set Connbbs = Server.CreateObject(ADODB.Connection) Connbbs.Open bbs Connbbs.Execute(INSERT INTO bbs(ID,authname,subject,content,adddate,addtime,answernum,topnum,visitnum) Values( &number& , &name& , &subject& , &content& , &curdate& , &curtime& , &manswernum& , &mtopnum& ,0) Connbbs.Close % % =curdate & % =curtime & 添加贴子 % a href=http:/nt-server/hosp/asp/dispbbs.asp返回论坛/aP 姓名:% =name %P 主题:% =subject %P 内容:% =content %P % Else % 您的用户名或密码出错,请您重输! % End If RS.Close Connection.Close % /body /html 5、帖子具体内容的显示和回复 detail.asp html headtitlebbs.asp/title/head body background=/hosp/images/backgrnd.gif % idnum=Request.QueryString(ID) Set Connection=Server.CreateObject(ADODB.Connection) Connection.Open bbs Set RS=Connection.Execute(SELECT * FROM bbs WHERE ID= &idnum& ) % 姓名:% =RS(1) %p 主题:% =RS(2) %p 内容:% =RS(3) %p - ! -形成回复表单 - % resub=Re: & RS(2) mtopnum=RS(8) RS.Close Connection.Close % FORM METHOD=POST ACTION=/hosp/asp/bbs.asp?ID=% =idnum %&topnum=% =mtopnum %P 姓名: INPUT NAME=name SIZE=28 密码: INPUT TYPE=password NAME=code SIZE=28P 主题:INPUT NAME=subject SIZE=66 VALUE=% =resub %P 内容:P TEXTAREA NAME=content ROWS=20 COLS=72/TEXTAREAP CENTERINPUT TYPE=SUBMIT VALUE=信息回复 INPUT TYPE=RESET VALUE=清除信息/CENTER /FORM a href=http:/nt-server/hosp/asp/dispbbs.asp返回论坛/a /body /html 6、所有帖子的显示 Dispbbs.asp:列出所有的帖子的主题、作者、时间、访问人数等信息。 html headtitledispbbs.asp/title/head body background=/hosp/images/backgrnd.gif CENTERIMG SRC=/hosp/images/luntan.gif BORDER=0/CENTERP CENTERA HREF=/hosp/login.htmIMG SRC=/hosp/images/zhuce.gif BORDER=0/A A HREF=/hosp/bbs_add.htmIMG SRC=/hosp/images/jiatz.gif BORDER=0/A A HREF=/hosp/default.htmIMG SRC=/hosp/images/return.gif BORDER=0/A/CENTERP % Set Connection=Server.CreateObject(ADODB.Connection) Connection.Open bbs Set RS=Connection.Execute(SELECT * FROM bbs WHERE ID=answernum ORDER BY ID DESC) Set Conn=Server.CreateObject(ADODB.Connection) Conn.Open bbs Set RSNEXT=Conn.Execute(SELECT * FROM bbs) Do While not RS.EOF % % =RS(0) % a href=/hosp/asp/detail.asp?ID=% =RS(0) % =RS(2) %/a -FONT SIZE=4B% =RS(1) %/B/FONT % =RS(4) & % =RS(7) %(% =RS(5) %)P % Set RSNEXT=Conn.Execute(SELECT * FROM bbs WHERE topnumID AND opnum= &RS(0)& ORDER BY ID ASC) Do While Not RSNEXT.EOF % % =RSNEXT(0) % a href=/hosp/asp/detail.asp?ID=% =RSNEXT(0) %Re% RSNEXT(6) %:% =RSNEXT(2) %/a -FONT SIZE=4B% =RSNEXT(1) %/B/FONT % =RSNEXT(4) & % =RSNEXT(7) %(% =RSNEXT(5) %)P % RSNEXT.MoveNext Loop RS.MoveNext Loop RSNEXT.Close Conn.Close RS.Close Connection.Close % /body /html 上述程序在Win NT4.0和IIS3.0上实现通过。创建移动Web应用程序介绍 现今移动设备已成为我们生活中的一部分,我们当中的许多人已离不开它们。当这些移动设备连接到Internet时,移动设备的力量将无穷无尽。我们可以在任何时间地点给用户发送数据。典型的移动应用程序是在服务器上使用WML, WMLScript和WBMP开发的。 对于动态WML应用程序,开发者可以使用ASP, JSP, PHP等等。移动设备包括蜂窝电话、寻呼机、掌中浏览器、袖珍PC和车载PC。这些设备中少数支持WML,少数支持HTML,更少数支持同时支持WML和HTML。如果你想确保你的应用程序能在大多数的移动设备中使用,你必须以WML和有限的HTML创建应用程序。 最近Microsoft提出了一个革命性的应用程序开发平台.NET 框架。.NET 框架包括用于Web开发的ASP.NET(下一版本的ASP)。基于ASP.NET的Web开发即支持传统的Web客户端如IE和Netscape,又支持移动客户端如P, Nokia 蜂窝电话和袖珍PC。ASP.NET应用程序可以在任何.NET支持的语言环境下如VB.NET(下一版本的VB),JScript, C+, C#等等语言环境下进行开发。在这篇文章中,我们将看到如何使用.NET Mobile Web SDK, ASP.NET和 VB.NET看法移动应用程序。 .NET介绍 在深入之前,我想给你简要地介绍一下.NET。.NET是一个由Microsoft在2000年专业开发者会议上提出的发展中的开发平台。下面的图表展示了.NET 框架应用程序开发的简单结构。 当一个ASP.NET的页面请求从一个Web客户端如IE或移动设备发出时,IIS会收集请求并把它传递给.NET 框架。如果ASP.NET的页面是首次请求,那么.NET 框架将把ASP.NET编译成中间语言(intermediate language,IL)。然后IL代码将被即时(Just-In-Time,JIT)编译器编译成本地代码。就象你所看到的,.NET 框架是整个ASP.NET应用的核心。.NET 框架将提供必须的资源和你所选择由于编译代码的语言编译器。 开发所必须的条件 要使用.NET开发移动应用程序,你必须下载和安装如下的组件。IE和.NET SDK可以从 Microsoft MSDN site 免费下载。 1. Windows 2000 Professional/Server/Advanced Server OS 2. Internet Explorer 5.5 3. .NET framework Beta 1 4. .NET Mobile Web SDK Beta 1 5. WAP模拟器 让我们开始吧! 要使用.NET开发移动应用程序,必须包含由.NET Mobile Web SDK提供(通过MobileUI.DLL文件)的 Mobile Web名域(System.Mobile.UI)。对于那些对namespace(名域)一词感到陌生的人来说,名域就象C+的头文件和Visual Basic的引用。名域将提供开发应用程序所要求的类。 使用.NET 框架开发移动应用程序是很容易的。 1. 创建一个ASP.NET页面 2. 包含Mobile Web Namespace-System.Mobile.UI 3. 用Mobile控件设计页面 就是那么简单。 Mobile 控件 Mobile控件是为开发移动应用程序而设计好的程序块。对于那些喜欢使用象VB和Frontpage等这样的集成开发环境(IDE)来开发GUI/Web的人来说,Mobile 控件就与HTML的按钮控件和VB的Grid控件相类似。Mobile控件通过提供程序员所需要的功能来简化程序的开发过程。 例如,如果你想画一个WML Card标记符,你可以使用Mobile Form控件。对于所有的WML标记符都提供了相应的Mobile 控件。Mobile 控件吸引人之处就在于,它们不仅限用于WML标记符;相反,它们超越了WML标记符,可以创建有用的Mobile 控件,如在WML无法实现的日历Mobile 控件。 让我们看一看一个显示“Hello World!”的ASP.NET页面例子。 % Page Inherits=System.Mobile.UI.MobilePage % Register TagPrefix=Mobile Namespace=System.Mobile.UI Mobile:Form runat=server Mobile:Label runat=serverHello, World!/Mobile:Label /Mobile:Form循序渐进理解ASP.NET页面 1. 在第一行里,给ASP.NET页面对象继承了Mobile Web名域。如果不这样做,ASP.NET就会遵循普通Web应用程序的页面处理程序。 2. 在第二行里,为Mobile Web名域注册了一个标记符前缀。你可以看到在剩下的代码中,对所有的Mobile 控件都使用“Moblie”这个关键字作为名域前缀。你可以使用任何你想的名字作为标记符前缀。 3. 在第三行里,创建一个Mobile窗体并把它的runat属性设置为server。 4. 在第四行里,创建一个Mobile label控件和“Hello World”文本。 5. 最后一行,关闭Mobile窗体标记符 运行以上例子,观看结果。 以上就是例子在P模拟器显示的效果。现在再让我们看一看ASP.NET生成的代码: 是不是很Cool?ASP.NET为我们生成代码,Mobile Form控件已经被转换为WML card标记符;同样地,Mobile Label控件被转换为WML paragraph标记符。 让我们看一看在Pocket IE中又会怎样: 再让我们看一看ASP.NET为Pocket IE生成的代码: html body form id=ctrl1 name=ctrl1 method=post action=Exp1.Aspx?631169274439268880 divHello, World!/div /form /body /html ASP.NET为Pocket IE生成HTML代码。的确,Mobile 控件有能力探测到所使用的浏览器并生成所支持的代码。所以,当在WAP模拟器中打开一个ASP.NET页面时得到的是WML代码。而在袖珍PC中打开时得到HTML代码。这样就给我们开发一次服务任何移动设备的能力。很Cool,不是吗? 移动应用程序设计概念 NET Mobile Web SDK提供了三个容器对象:MobilePage, Form 和Panel。MobilePage控件是移动应用程序的重要容器。一个单独的MobilePage可以有一个或多个Form控件。一个Form控件可以有0个或多个Panel控件。Panel控件用于给各种Mobile控件分组。 .NET Mobile Web SDK 中Mobile控件 Mobile控件可以被分为三个主要的组。它们是用户界面(UI)控件,验证(Validation)控件和功能(Utility)控件。用户界面控件是如Lable控件一样允许用户控制用户界面的一组控件。验证控件允许我们验证用户的输入如RequiredFieldValidator控件,这些控件在向服务器发送数据之前验证用户输入的数据。功能控件是诸如日历控件这一类的控件。 以下表格展示了以上各个类别的控件。 UI控件 控件名描述Command一个Command控件执行诸如提交信息之类的动作FormForm控件是一个或多个mobile控件的容器Image在移动设备中显示图象Label在移动设备中显示输出文本Link在窗体中创建一个超链接List在移动设备中显示一个选项列表MobilePage控制所有mobile控件的容器TextBox显示单行的文本框Textview显示多行的文本框 验证控件 控件名描述CompareValidator比较两个mobile控件CustomValidator自定义的检验器允许从控件中调用自己的检验过程RangeValidator限制检验器在一个范围内检测数据RegularExpressionValidator检测与控件指定的表达式不符的数据RequiredFieldValidator检测用户在这一区域输入的数据ValidationSummary显示一个所有发生的检验过程的报告 功能控件 控件名描述Call拨打一个电话号码Calendar显示一个日历AdRotator随机显示一个广告 自动分页是.NET Mobile Web SDK的优势之一。.NET远行时会处理目标设备的页面显示问题。对于不同的Mobile控件会采取不同的分页处理形式。例如,对于List控件,分页由该控件的PageSize属性处理。这个属性根据目标设备自动设置。当在运行时显示页面时,panel控件里的控件就会呆在一起。 一个简单的例子 让我们写一个简单应用程序,显示一个文本框接受输入并在下一个窗体中显示。 % Page Inherits=System.Mobile.UI.MobilePage % % Register TagPrefix=mobile Namespace=System.Mobile.UI % Script language=VB runat=server Sub Btn_OnClick(Src As Object, E As EventArgs) move to the next mobile form ActiveForm = frm2 display the name. EnteredName.Text = Your name is: & YourName.Text End Sub /Script mobile:Form id=frm1 run

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论