首页 > 编程 > ASP > 正文

asp+中文教程(三)-- 服务器端控制(一)

2024-05-04 11:06:26
字体:
来源:转载
供稿:网友
 上次讲了一些有关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>
菜鸟学堂:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表