网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.Net调试之三板斧:第三招.
.手把手教你使用VB来创建ASP组件(.
.ASP.NET 入门的五个步骤.
.在ADO使用SELECT语法三.
.利 用 ISAPI 实 现 向 数 据 库 .
.初看ASP-针对初学者.
.十天学会ASP之第三天.
.NET移植案例学习:建造Web站点(1).
.ASP 3.0高级编程(十八).
.ASP 3.0高级编程(四十一).
.asp+语法介绍(三)----asp+的服务.
.正则表达式简介(1-3).
.@ 指令参考之四 - @LCID.
.ASP讲座之三:Application对象与.
.ASP讲座之十:自己动手编写组件.
.亲密接触ASP.Net(3).
.浅析ASP内置组件.
.Microsoft SQL Server 7.0安装问.
.ASP系列讲座(七)使用组件和对象.
.ASP中FSO的神奇功能 - 文件读取.

asp+中文教程(二)-- Asp+ Web Forms

发表日期:2000-9-29


二、ASP + Web Forms

    ASP + Web Forms ,一个微软的新名词,照它自己的话说,ASP + Web Forms页面框架是一个可升级的NGWS runtime编程模型,可以在服务器上动态产生网页。不太好懂是吗,其实说白了,和HTML的表单一样,但它可以在服务器端动态改变,而不象静态HTML表单那样一旦生成就无法改变,当然,用DHTML或remote script也可以做到动态改变,但毕竟不是很方便。那么,究竟Web Forms是个什么样呢?其实你已经见过了,记得上次我给的那个例子吗,没错,那就是一个Web Forms ,不过由于那个例子里全是静态HTML,所以当你按下”lookup”按钮时只不过是提交一次表单而已,什么都没有发生,现在让我们来看一个真正意义上的Web Forms ,它带有一个广告轮换控制,一个文本输入框,一个选择框、一个按钮和一个文本标签,代码如下。

File : Intro6.aspx

<html>
   <head>
      <link rel="stylesheet"href="intro.css">
   </head>

   <script language="C#" runat=server>

       void SubmitBtn_Click(Object sender, EventArgs e) {
           Message.Text = "Hi " + Name.Text + ", you selected: " + Category.SelectedItem;
       }

   </script>

   <body>

       <center>

       <form action="intro6.aspx" method="post" runat="server">

           <asp:adrotator AdvertisementFile="ads.xml" BorderColor="black" BorderWidth=1 runat="server"/>

           <h3> Name: <asp:textbox id="Name" runat="server"/>

           Category:  <asp:dropdownlist id="Category" runat=server>
                         <asp:listitem>psychology</asp:listitem>
                         <asp:listitem>business</asp:listitem>
                         <asp:listitem>popular_comp</asp:listitem>
                      </asp:dropdownlist>

           <asp:button type=submit text="Lookup" OnClick="SubmitBtn_Click" runat="server"/>

           <p>

           <asp:label id="Message" runat="server"/>

       </form>

       </center>

   </body>
</html>

    好了,现在我们来具体看一下这个ASP+ 程序和ASP到底有什么不同,首先你可能注意到,原来asp的<% %>脚本定界符不见了,取而代之的是<script language=…>,说实话,原来我最痛恨的就是这个<% %>了,尤其是在HTML中混用的时候,简直不象一种编程语言,你要从这样一段程序里看出程序流程来,简直比登天还难,现在好了。当然这不是说你现在不能用<% %>,毕竟它是向前兼容asp的嘛,不过我还是尽量少用为妙。看下面一段:
   <script language="C#" runat=server>

       void SubmitBtn_Click(Object sender, EventArgs e) {
           Message.Text = "Hi " + Name.Text + ", you selected: " + Category.SelectedItem;
       }

   </script>

    用过C的朋友是不是觉得很熟悉?没错,这是用C#写的一个事件处理函数,void SubmitBtn_Click(Object sender , EventArgs e) ,你可能一看就明白了,void代表该函数没有返回值,该函数带有两个参数, 代码只有一行,你可能注意到这行代码中的Message、Name、Category你并没有定义,那么它们从哪里来的呢?看下面的代码:
       <form action="intro6.aspx" method="post" runat="server">

           <asp:adrotator AdvertisementFile="ads.xml" BorderColor="black" BorderWidth=1 runat="server"/>

           <h3> Name: <asp:textbox id="Name" runat="server"/>

           Category:  <asp:dropdownlist id="Category" runat=server>
                         <asp:listitem>psychology</asp:listitem>
                         <asp:listitem>business</asp:listitem>
                         <asp:listitem>popular_comp</asp:listitem>
                      </asp:dropdownlist>

           <asp:button type=submit text="Lookup" OnClick="SubmitBtn_Click" runat="server"/>

           <p>

           <asp:label id="Message" runat="server"/>

       </form>

    这个表单的写法和html表单完全不同了吧?首先,所有的表单项包括表单本身后面都加上了runat=server,这句话的意思就是说这个是服务器端控制项,另外象传统表单的什么<input type=text>等的写法都变了,你仔细观察一下可以看出,原来的文本框变为<asp:textbox>,选择框变为<asp:dropdownlist> , 选择框选项变为<asp:listitem>,而submit按钮变为<asp:button>,这个按钮对应的控制函数就刚才我提到的那个SubmitBtn_Click函数,它是运行在服务器端的。另外还有一个服务器端控制<asp:label id=”Message” runat=”server”/>,这个asp:label是传统表单所没有的,它是一个服务器端文本控制,那么就存在一个问题,如果传统的HTML里没有这个元素,那么ASP+是怎么接收的呢?你运行一下这个程序,然后看一下HTML源码,你会发现这么一行:
<INPUT type="hidden" name="__VIEWSTATE" value="a0z-1715863018__x">
对,ASP+就是通过这个隐藏表单的形式传递过去的。
在<form>标记下有这么一行代码:
<asp:adrotator AdvertisementFile="ads.xml" BorderColor="black" BorderWidth=1 runat="server"/>
asp:adrotator,这也是一个服务器端控制,看名字你就知道了,广告轮换嘛,不过相对ASP,它现在不是使用内置组件,而是作为一个服务器端控制,控制它显示的就是这个ads.xml,代码如下:

file ads.xml:
<Advertisements>

   <Ad>
      <ImageUrl>/quickstart/aspplus/images/banner1.gif</ImageUrl>
      <TargetUrl>http://www.microsoft.com</TargetUrl>
      <AlternateText>Alt Text</AlternateText>
      <Keyword>Computers</Keyword>
      <Impressions>80</Impressions>
   </Ad>

   <Ad>
      <ImageUrl>/quickstart/aspplus/images/banner2.gif</ImageUrl>
      <TargetUrl>http://www.microsoft.com</TargetUrl>
      <AlternateText>Alt Text</AlternateText>
      <Keyword>Computers</Keyword>
      <Impressions>80</Impressions>
   </Ad>

   <Ad>
      <ImageUrl>/quickstart/aspplus/images/banner3.gif</ImageUrl>
      <TargetUrl>http://www.microsoft.com</TargetUrl>
      <AlternateText>Alt Text</AlternateText>
      <Keyword>Computers</Keyword>
      <Impressions>80</Impressions>
   </Ad>

</Advertisements>

    自己看一下吧,我就不详细解释了。

    好了,现在再运行一遍这个程序,好好体会一下它与asp的区别,准备下次的内容。

上一篇:ASP+中文教程(一)--asp+简介、安装、以及如何显示中文 人气:17381
下一篇:APS + 中文教程(三)--服务器端控制(一) 人气:14562
浏览全部ASP+中文教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐