
 
 | 
| 技术资料  > ASP技术 > 系统相关 : APS + 中文教程(三)--服务器端控制(一) |  
APS + 中文教程(三)--服务器端控制(一) March 25,2004 |  
三、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> 
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved