程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> APS + 中文教程(三)--服務器端控制(一)

APS + 中文教程(三)--服務器端控制(一)

編輯: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" />
    
    &nbsp;&nbsp;

    <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> 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved