asp+中文教程(四)-- 服务器端控制(二)

asp+|服务器|教程|控制|中文

8、    DropDownList : 单选下拉框,你有两种方法可以增加下拉框中的选择项,一种和传统的select一样,把option项列出来,象下面这样:
     
        <asp:DropDownList id=DropDown1 runat="server">
            <asp:ListItem>Item 1</asp:ListItem>
            <asp:ListItem>Item 2</asp:ListItem>
            <asp:ListItem>Item 3</asp:ListItem>
            <asp:ListItem>Item 4</asp:ListItem>
            <asp:ListItem>Item 5</asp:ListItem>
            <asp:ListItem>Item 6</asp:ListItem>
        </asp:DropDownList>

另一种方法是和数据绑定,如下:

               ArrayList values = new ArrayList();

               values.Add ("IN");
               values.Add ("KS");
               values.Add ("MD");
               values.Add ("MI");
               values.Add ("OR");
               values.Add ("TN");

               DropDown1.DataSource = values;
               DropDown1.DataBind();

这两种法法你可以任意选择,我个人觉得后一种方法比较实用,尤其是当遇到用数据库中得到的数据来做下拉框选项时。

9、    HyperLink : 超连接,但和HTML的<a href>不同的是HyperLink作为一个服务器端控制,具有Text 和 NavigateUrl两个属性,并且可以用数据绑定的方法来定义,下面我列出两种定义方法:
方法一:

        <asp:hyperlink id=HyperLink1 NavigateUrl= “/quickstart” runat="server">
            Go To QuickStart
        </asp:hyperlink>

        方法二:

       <%@ Import Namespace="System.Data" %>

<html>

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

    void Page_Load(Object Src, EventArgs E) {

        DataTable dt = new DataTable();
        DataRow dr;

        dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
        dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
        dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
        dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
        dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

        for (int i = 0; i < 9; i++) {

            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = "Item " + Int32.ToString(i);
            dr[2] = DateTime.Now;
            dr[3] = (i % 2 != 0) ? true : false;
            dr[4] = 1.23 * (i+1);

            dt.Rows.Add(dr);
        }

        MyRepeater.DataSource=new DataView(dt);
        MyRepeater.DataBind();
    }

</script>

<body>

    <h3><font face="Verdana">DataBinding HtmlAnchor</font></h3>

    <p>

    <form runat=server>

        <asp:Repeater id="MyRepeater" runat="server">

            <template name="ItemTemplate">

                Link for

                <asp:HyperLink id=HyperLink1 Text='<%# DataBinder.Eval(Container.DataItem, "StringValue") %>' NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"StringValue","detailspage.aspx?id={0}") %>' runat="server" />

                <p>

            </template>

        </asp:Repeater>

    </form>

</body>
</html>

10、Image :图片,只有一个属性ImageUrl, 现在你可以实时改变图片了,例子我就不给了。

11、    mageButton:图片按钮,比较好理解,但你可千万别小瞧它呀,比起DHTML中的那个图片按钮来,它的功能强大多了。首先,它可以作为一个按钮来使用(废话),比起这个基本功能,下边要谈到的这个功能就会让你咋舌的,它可以判断你点击的相对坐标,什么,没什么用?我。。我扁你!看看下面这段程序:
    
ImageButton2.aspx

<html>
<head>

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

        void ImageButton1_OnClick(object Source, ImageClickEventArgs e) {
        
            int x=e.X;
            int y=e.Y;

            Label1.Text = "X: " + x.ToString();
            Label2.Text = "Y: " + y.ToString();
            Button1.ImageUrl = "/quickstart/aspplus/images/billg.gif";

            // Check to see if an eye, ear, nose or mouth was clicked.
            
            if (x>20 && x<35 && y>72 && y<88) {
                Label3.Text = "You clicked Bill's ear.";
            }
            else if (x>42 && x<58 && y>48 && y<64) {
                Label3.Text = "You clicked Bill's eye.";
            }
            else if (x>62 && x<90) {
            
                if (y>46 && y<56) {
                    Label3.Text = "You clicked Bill's eye.";
                }
                else if (y<72 && y>60) {
                    Label3.Text = "You clicked Bill's nose.";
                }
                else if (y<92 && y>74) {
                    Button1.ImageUrl = "/quickstart/aspplus/images/billg_tongue.gif";
                    Label3.Text = "Phfttttt-t-t-t-t-t!.";
                }
                else {
                    whoops();
                }
            }
            else if (x>100 && x<108 && y>56 && y<72) {
                Label3.Text = "You clicked Bill's ear.";
            }
            else {
                whoops();
            }
        }

        void whoops() {
            Label3.Text = "You missed! Try clicking Bill's eyes, ears, nose or mouth.";
        }

    </script>

</head>
<body>

    <h3><font face="Verdana">Using ImageButton as an Image Map</font></h3>

    <form runat=server>

        <table width="100%" border=0>
          <tr>
            <td width="25%">
                <asp:ImageButton id=Button1 ImageUrl="/quickstart/aspplus/images/billg.gif" BorderWidth="2px" onclick="ImageButton1_OnClick" runat="server" />
            </td>
            <td>
                <asp:Label id=Label1 Text="X:" runat="SERVER"/>
                
                <br>
                
                <asp:Label id=Label2 Text="Y:" runat="SERVER"/>
            </td>
          </tr>
        </table>
        
        <asp:Label id=Label3 font-bold="true" Text="" runat="SERVER"/>
        
    </form>

</body>
</html>

运行一下,你看到了什么?是比尔.盖茨傻兮兮的一张笑脸,你如果点中他的眼睛和鼻子,就会告诉你你点中了哪儿,如果你点中他的嘴,他会伸一下舌头,当然,这些只是根据你鼠标点中的相对位置来判断相应的操作而已,但你别忘了这只是简单的一个ImageButton就能够做到的功能呀。

12、    Label , 前面的例子已经讲过了,是一个服务器端文本控制,它只有一个属性:Text , 你可以动态改变它。

13、    LinkButton :有一种服务器端按钮控制,它的外形象HyperLink , 属性也相同,但不同的是它可以提交表单,同其他两种button控制一样。

14、    ListBox , 列表框,它和下拉框一样,也有两种方式定义选项,一种是直接列表,另一种是数据绑定,我就不再赘述了。

15、    Panel : 面板服务器端控制,这可是个好东西,它可以作为其他服务器端控制的集合,它最实用的地方是可以生成一组服务器端控制或者显示/隐藏一组服务器端控制,看看下面这个例子吧,是不是很奇妙?

Panel1.aspx

<html>
<head>

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

        void Page_Load(Object sender, EventArgs e) {
        
            // Show/Hide Panel Contents
        
            if (Check1.Checked) {
                Panel1.Visible=false;
            }
            else {
                Panel1.Visible=true;
            }

            // Generate label controls
            
            int numlabels = int.FromString(DropDown1.SelectedItem.Value);
            
            for (int i=1; i<=numlabels; i++) {
                Label l = new Label();
                l.Text = "Label" + Int32.ToString(i);
                l.ID = "Label" + Int32.ToString(i);
                Panel1.Controls.Add(l);
                Panel1.Controls.Add(new LiteralControl("<br>"));
            }

            // Generate textbox controls
            
            int numtexts = int.FromString(DropDown2.SelectedItem.Value);
            
            for (int i=1; i<=numtexts; i++) {
                TextBox t = new TextBox();
                t.Text = "TextBox" + Int32.ToString(i);
                t.ID = "TextBox" + Int32.ToString(i);
                Panel1.Controls.Add(t);
                Panel1.Controls.Add(new LiteralControl("<br>"));
            }
        }

    </script>

</head>
<body>

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

    <form runat=server>

        <asp:Panel id="Panel1" runat="server"
            BackColor="gainsboro"
            Height="200px"
            Width="300px">

            Panel1: Here is some static content...
            <p>

        </asp:Panel>

        <p>
        
        Generate Labels:
        <asp:DropDownList id=DropDown1 runat="server">
            <asp:ListItem Value="0">0</asp:ListItem>
            <asp:ListItem Value="1">1</asp:ListItem>
            <asp:ListItem Value="2">2</asp:ListItem>
            <asp:ListItem Value="3">3</asp:ListItem>
            <asp:ListItem Value="4">4</asp:ListItem>
        </asp:DropDownList>

        <br>
        
        Generate TextBoxes:
        <asp:DropDownList id=DropDown2 runat="server">
            <asp:ListItem Value="0">0</asp:ListItem>
            <asp:ListItem Value="1">1</asp:ListItem>
            <asp:ListItem Value="2">2</asp:ListItem>
            <asp:ListItem Value="3">3</asp:ListItem>
            <asp:ListItem Value="4">4</asp:ListItem>
        </asp:DropDownList>

        <p>
        <asp:CheckBox id="Check1" Text="Hide Panel" runat="server"/>
            
        <p>
        <asp:Button Text="Refresh Panel" runat="server"/>

    </font>
    </form>

</body>
</html>

好了,先说到这里吧,有点儿累了。以后我将介绍剩下的13种服务器端控制。

时间: 2024-09-12 14:21:02

asp+中文教程(四)-- 服务器端控制(二)的相关文章

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

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

Swift中文教程(四)--函数与闭包

原文:Swift中文教程(四)--函数与闭包 Function 函数 Swift使用func关键字来声明变量,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: 1 func greet(name: String, day: String) -> String { 2 return "Hello \(name), today is \(day)." 3 } 4 greet("Bob", "Tuesday")

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

asp+|服务器|教程|控制|中文  上次讲了一些有关ASP + 服务器端控制的内容,现在来详细讲一下.Asp + 服务器端控制是微软新提出的概念,它的实现是基于微软的.NET框架,它实际上是一种特殊的HTML元素,服务器端与它是交互的关系,在生成这些元素后不但能接受它们的值,还可以动态控制它们,以完成一些很COOL的功能.下面列出所有ASP + 目前支持的所有28个服务器端控制及其具体用法. 1.    Adrotator : 广告轮换服务器端控制,它的具体行为是在指定的XML文件里定义的,如

asp+中文教程(二)-- Asp+ Web Forms

asp+|web|教程|中文 二.ASP + Web Forms ASP + Web Forms ,一个微软的新名词,照它自己的话说,ASP + Web Forms页面框架是一个可升级的NGWS runtime编程模型,可以在服务器上动态产生网页.不太好懂是吗,其实说白了,和HTML的表单一样,但它可以在服务器端动态改变,而不象静态HTML表单那样一旦生成就无法改变,当然,用DHTML或remote script也可以做到动态改变,但毕竟不是很方便.那么,究竟Web Forms是个什么样呢?其实

Swift中文教程(四)函数和闭包

Function 函数 Swift使用func关键字来声明函数,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } greet("Bob", "Tuesday") 练习: remove day参数,增加一个参数,比如:今天的

Swift中文教程(三)流程控制

Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花括号包住这个循环体是必须的: let individualScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } } tea

ASP.NET实现在服务器端控制网页

asp.net|服务器|控制|网页     使用.Net和C#开发Web应用程序往往能给我们很大的启示,尤其在开发相对简单的例行任务时就更是如此.例如,在许多时候,我们都需要有条件地显示一个网页的一部分.需要这么做的原因有许多,例如,根据用户的角色,有一部分是它不应当看到的.或者,我们也可以考虑搜索功能,只有点击了一个链接后,搜索选项才是可用的. 我们先来解释一下解决这一问题的方法,然后再详细地解释所使用的代码.在.Net中开发Web应用程序,我们既可以使用服务器端的Web控件(Web表单)也可

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

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

ASP.NET超凡的代码控制(二)

crystal译·yesky     优化和缓冲存储. 这是怎样办到的呢? 根据脚本的首次请求, runtime将代码进行编译,并将编译结果进行高速缓冲存储复制(备份). 不论何时,只要脚本有请求,被存储的副本都可以调出使用. 此结果大大的增强了系统性能, 因为在首次请求之后,代码能更快的从编译版本中运行. 有人也许就会问了"它怎么知道我什么时候作了改动?" 微软已对此作出解答.Runtime通过文件系统来监视源文件. 当初始源文件发生改变时,它自动将编译版本从高速缓冲存储备份中拖出,