• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> ASP开发 >> 系统相关 >> 详细内容
 

推荐文章

 
 

热点文章

  • ASP+中文教程
  • 展现 C#
  • ASP+上传文件语法
  • 如何在ASP+中发送邮件
  • asp+的几个特点
  • ASP控制计算机函数ADSI发表
  • asp+初体验---用c#写的asp+域名查询程序
  • ASP+中执行简单的Select查询,并返回数据表到DataGrid
  • ASP+数据库操作例子
  • ASP+ 跟踪
  • 一份ASP内存的释放的实验报告
  • ASP+页缓存OutputCache Duration用法
 
 

相关文章

  • ASP+中GetTitleAuthors和PutTitleAuthors应用例子
  • ASP+页缓存OutputCache Duration用法
  • ASP+中执行简单的Select查询,并返回数据表到DataGrid
  • 让您的主页支持各种浏览设备(ASP+篇)
  • ASP+培训教材
  • 如何在ASP+中发送邮件
  • ASP+数据库操作例子
  • 转换ASP到ASP+
  • asp+与asp的区别
  • 突破性的ASP+技术
  • asp+语法介绍
  • Active Server Pages + 介绍
 
 

百度搜索

 
 

ASP+中文教程

  • 阅览次数:
  • 文章来源: 网海之贝
  • 原文作者: 佚名
  • 整理日期: 2006-10-03
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

ASP+ 中文教程-----asp+简介、安装、以及如何显示中文

    终于空下一段时间,可以学一些新东西,看了一下有关asp+的相关资料,觉得很值得学一下,所以就一边学习一边写下这个教程,对于自己来说,可以作为学习笔记,对于别人,尤其是那些E文不太好的朋友可以作为一个可看的中文资料吧,起个抛砖引玉的作用。由于水平所限,错误在所难免,希望大家能批评指正。首先我将讲一下什么是asp+ , 然后我会结合NGWS自带的例子具体讲一下asp+的应用。由于平常用C较多,所以所有例子都用C#(C sharp , 微软的一种新的编程语言,专门对应其NGWS runtime)来写。

    既然叫asp+教程,但自然要说一下什么叫asp+ , 但这里我不想只是简单地把微软自己的介绍翻译过来,一个是因为这样的翻译文章很多,另外微软自己未免有点自我吹捧之嫌。我只想谈谈我对asp+的一些初步印象。Asp+给我的第一感觉是功能太强大了,可能你已经看到我那篇域名查询的asp+程序,比起使用组件来方便多了,不用再受那些写组件的限制,可以这样说,凡是传统编程语言可以做到的,asp+都可以做到,当然了,因为本身是作为一种web编程语言,它还是要受web编程的限制。那么,asp+对于asp来说有什么突破呢?首先,运行机制不同,asp属于一种解释型的编程框架,它的核心是vbs和js,受这两种脚本语言的限制,决定了asp先天不足,它无法进行象传统编程语言那样的底层操作,所以如果你需要进行一些诸如socket、文件等的操作时不得不借助于用其他传统编程语言如C++、VB 、JAVA等编写的组件,并且由于它是解释执行的,所以在运行效率上大打折扣。而asp+呢,它是一种编译型的编程框架,它的核心是NGWS runtime ,除了和asp一样可以采用vbs和js作为编程语言外,还可以用VB和C# 来编写,这就决定了它功能的强大,可以进行很多低层操作而不必借助于其他编程语言。另外由于它是编译后运行的,所以执行效率要比asp高得多。

    唉,讲这些理论性的东西真是既枯燥又乏味,让我们来点儿实际的吧。下面我讲一下asp+的运行环境。想要运行asp+程序,首先你要具备运行的条件(废话),首先,你需要asp+的支撑环境,也就是NGWS runtime, 这个你可以从微软站点免费下载,由于NGWS是计划在visual studio7中出正式版本,所以你现在能下载的是它的beta版,具体版本号是1812.9。不过先别急着下载,首先要看一下你的机器是否能够跑起来,具体要求如下:
·    CPU: Intel Pentium II-class 300 MHz (Intel Pentium III-class 600 MHz recommended)
·    RAM: 96 MB (128 MB recommended)
·    Available hard disk space (for install): 250 MB
·    Available hard disk space (post install): 155 MB
·    Video: 800x600, 256 colors  
·    CD-ROM: required
·    Operating System: Microsoft Windows 2000 and Microsoft Internet Explorer 5.5  
·    Other Software:  MDAC 2.6 Beta 2
   看明白了,怎么样,如果你的电脑符合要求,那么来吧,让我们下载这个80多M的庞然大物吧,具体下载地址是:
http://download.microsoft.com/download/platformsdk/Trial/1812.10full/NT5/EN-US/Setup.exe
    下载完后,安装及配置很简单,你只需要运行这个setup.exe然后按照向导完成安装即可,现在我们就可以来运行我们的第一个asp+程序了。好了, 看下面这个程序:

file : intro1.aspx


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

   <body>



       <center>

       <form action="intro1.aspx" method="post">

           <h3> Name: <input id="Name" type=text>

           Category:  <select id="Category" size=1>
                          <option>psychology</option>
                          <option>business</option>
                          <option>popular_comp</option>
                      </select>

           <input type=submit value="Lookup">

       </form>

       </center>

   </body>
</html>

    怎么样,看明白了吧。什么?这是个标准htm文件?对呀。喂,先别扔烂西红柿臭鸡蛋呀,看仔细了,虽然这是个标准的htm文件,但你把它存为后缀为.aspx的文件,然后在浏览器里运行一下,怎么样,没骗你吧,这就是一个不折不扣的asp+文件,你的第一个asp+程序。由于asp+向前兼容asp,所以任何一个asp文件都可以作为asp+文件来运行,下面让我们把上边这个文件稍微改动一下,把两个input前面的name 和 category分别改为姓名和分类,就象下面这个文件:

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

   <body>



       <center>

       <form action="intro1.aspx" method="post">

           <h3> 名字: <input id="Name" type=text>

           分类:  <select id="Category" size=1>
                          <option>psychology</option>
                          <option>business</option>
                          <option>popular_comp</option>
                      </select>

           <input type=submit value="Lookup">

       </form>

       </center>

   </body>
</html>

    这次你再运行一下,发生什么?怎么,汉字都变成??号了?对,没错,表面上看是不支持汉字,但实际上我们是有办法解决的,找到winnt/complus/[version]/config.web这个文件,注意[version]是指NGWS的版本号,可能象这样:winnt/complus/1812.9/config.web,用记事本打开这个文件,找到如下几行:
   <globalization
      requestencoding="us-ascii"
      responseencoding="iso-8859-1"
   />
看到那个”iso-8859-1”了吗?对,正是这个东东造成不显示汉字,把它改成”gb2312”就一切ok了,再运行一次,怎么样,是不是看到你熟悉的汉字了?

二、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+ Server Control)

上次讲了一些有关ASP + 服务器端控制的内容,现在来详细讲一下。Asp + 服务器端控制是微软新提出的概念,它的实现是基于微软的.NET框架,它实际上是一种特殊的HTML元素,服务器端与它是交互的关系,在生成这些元素后不但能接受它们的值,还可以动态控制它们,以完成一些很COOL的功能。下面列出所有ASP + 目前支持的所有28个服务器端控制及其具体用法。

1、    Adrotator : 广告轮换服务器端控制,它的具体行为是在指定的XML文件里定义的,如下:

  <Advertisements>
           <Ad>
          <ImageUrl>/quickstart/aspplus/images/banner1.gif</ImageUrl>
          <NavigateUrl>http://www.microsoft.com</NavigateUrl>
          <AlternateText>Microsoft.com</AlternateText>
          <Keyword>Computers</Keyword>
          <Impressions>80</Impressions>
       </Ad>
</Advertisements>

属性的含义:
<ImageUrl>:      要显示得图片绝对或相对路径。
<NavigateUrl>:    点击图片所指向的URL,如果为空则图片不能被点击。
<AlternateText>:  鼠标移动到图片上所显示的提示信息。
<Keyword>:        指定改广告页面的过滤关键字。
<Impressions>:    该广告的显示百分比,这个数值越高,显示的次数越多。

2、    button: 这个好理解,类似于传统表单中的Button,但用法稍有不同,具体用法我就不祥述了。

3、    Calendar: 一个很方便的日历控制,这样就不用再用javascript费劲编了,还得计算闰年什么的,要多烦有多烦,看下面的例子:

<html>
<head>

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

        void Date_Selected(object s, EventArgs e) {
            Label1.Text = "Selected date is: " + Calendar1.SelectedDate.ToShortDateString();
        }

    </script>

</head>

<body>

    <h3><font face="Verdana">Calendar Example</font></h3>

    <form runat=server>

        <asp:Calendar id=Calendar1 onselectionchanged="Date_Selected" runat="server" />
        
        <p>
        
        <asp:Label id=Label1 runat="server" />
        
    </form>

</body>
</html>

这个控制带有一个属性SelectionMode,它的具体属性值如下:
Day :            可以选择任意一个单独的日子。
DayWeek:        可以选择一天或一个星期。
DayWeekMonth:   可以选择一天或一个星期或一个月。
None:            不能选择日期。


4、    CheckBox :  检查框嘛,没什么好说的,但有一点不同,那就是如果它的AutoPostBack属性设为真,则点选它时可以提交到服务器端。

5、    CheckBoxList : 顾名思义,一组可多选的检查框列表,它有两个重要的属性,RepeatLayout和RepeatDirection,控制这个列表的布局,设成table则该列表以表格为底,如果设成flow,则没有表格,RepeatDirection默认为vertical,垂直排列,如果设为horizontally,则水平排列。

6、    CompareValidator :进行两个服务器端控制的比较。它有三个不能缺少的重要属性:ControlToValidate , ControlToCompare 决定要比较那些控制,Operator决定比较的方式,是等于、不等于、大于、小于等。具体实现看下面的例子:

  CompareValidator1.aspx

<%@ Page clienttarget=downlevel %>

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

        void Button1_OnSubmit(Object sender, EventArgs e) {

            if (Page.IsValid) {
               lblOutput.Text = "Result: Valid!";
            }
            else {
               lblOutput.Text = "Result: Not valid!";
            }
        }

        void lstOperator_SelectedIndexChanged(Object sender, EventArgs e) {

            comp1.Operator = (ValidationCompareOperator) lstOperator.SelectedIndex;
            comp1.Validate();
        }

   </script>

</head>
<body>

    <h3><font face="Verdana">CompareValidator Example</font></h3>
    <p>Type a value in each textbox, select a comparison operator, then click "Validate" to test.</p>

    <form runat=server>

      <table bgcolor="#eeeeee" cellpadding=10>
      <tr valign="top">
        <td>
            <h5><font face="Verdana">String 1:</font></h5>
            <asp:TextBox Selected id="txtComp" runat="server"></asp:TextBox>
        </td>
        <td>
            <h5><font face="Verdana">Comparison Operator:</font></h5>

            <asp:ListBox id="lstOperator" OnSelectedIndexChanged="lstOperator_SelectedIndexChanged" runat="server">
                    <asp:ListItem Selected Value="Equal" >Equal</asp:ListItem>
                    <asp:ListItem Value="NotEqual" >NotEqual</asp:ListItem>
                    <asp:ListItem Value="GreaterThan" >GreaterThan</asp:ListItem>
                    <asp:ListItem Value="GreaterThanEqual" >GreaterThanEqual</asp:ListItem>
                    <asp:ListItem Value="LessThan" >LessThan</asp:ListItem>
                    <asp:ListItem Value="LessThanEqual" >LessThanEqual</asp:ListItem>
            </asp:ListBox>
        </td>
        <td>
            <h5><font face="Verdana">String 2:</font></h5>
            <asp:TextBox id="txtCompTo" runat="server"></asp:TextBox><p>
            <asp:Button runat=server Text="Validate" ID="Button1" onclick="Button1_OnSubmit" />
        </td>
      </tr>
      </table>

      <asp:CompareValidator id="comp1" ControlToValidate="txtComp" ControlToCompare = "txtCompTo" Type="String" runat="server"/>

      <br>
      
      <asp:Label ID="lblOutput" Font-Name="verdana" Font-Size="10pt" runat="server"/>

    </form>

</body>
</html>


7、    CustomValidator:自定义比较,作用就是可以进行上述基本比较不能完成的比较操作。这个比较可以运行在服务器端,也可以运行在客户端,如用vbscript或javascript。用法很简单,看例子吧。

CustomValidator1.aspx

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

        void ValidateBtn_OnClick(object sender, EventArgs e) {

            if (Page.IsValid) {
               lblOutput.Text = "Page is valid!";
            }
            else {
               lblOutput.Text = "Page is not valid! :-(";
            }
        }

        bool ServerValidate (object source, string value) {

            int num = Int32.FromString(value);
            
            if (num%2 == 0)
                return true;
            else
                return false;
        }
        
   </script>

</head>
<body>

<h3><font face="Verdana">CustomValidator Example</font></h3>

<form runat="server">

    <asp:Label id=lblOutput runat="server"
        Text="Enter an even number:"
        Font-Name="Verdana"
        Font-Size="10pt" /><br>

    <p>

    <asp:TextBox id=Text1 runat="server" />
   
      

    <asp:CustomValidator id="CustomValidator1" runat="server"
        ControlToValidate="Text1"
        OnServerValidationFunction="ServerValidate"
        Display="Static"
        Font-Name="verdana" Font-Size="10pt">
           Not an even number!
    </asp:CustomValidator>

    <p>

    <asp:Button text="Validate" onclick="ValidateBtn_OnClick" runat="server" />

</form>

</body>
</html>
       

上一篇:PHP编程技巧:看实例学正则表达式
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号