日期:2013-10-27  浏览次数:20352 次

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