第8章Web服务器控件特点会根据Client端的状况产生一个或多个适当的HTML服务器控件,它可以自动侦测Client端浏览器的种类,并自动调整成适合浏览器的输出。Web服务器控件还拥有一个非常重要的功能,那就是支持数据绑定(DataBinding);这种能力可以和数据源连结,用来显示或修改数据源的数据。它们提供了一些能够简化开发工作的特性,其中包括:丰富而一致的对象模型:WebControl基类实现了对所有控件通用的大量属性,这些属性包括ForeColor、BackColor、Font、Enabled等。属性和方法的名称是经过精心挑选的,以提高在整个框架和该组控件中的一致性。通过这些组件实现的具有明确类型的对象模型将有助于减少编程错误。对浏览器的自动检测:Web控件能够自动检测客户机浏览器的功能,并相应地调整它们所提交的HTML,从而充分发挥浏览器的功能。数据绑定:在Web窗体页面中,可以对控件的任何属性进行数据绑定。此外,还有几种Web控件可以用来提交数据源的内容。在HTML标记中,Web控件会表示为具有命名空间的标记,即带有前缀的标记。前缀用于将标记映射到运行时组件的命名空间。标记的其余部分是运行时类自身的名称。与HTML控件相似,这些标记也必须包含runat=server属性。下面是一个声明的示例:<asp:TextBoxid=textBox1runat=serverText=基督山伯爵></asp:TextBox>介绍几种常见的web控件4.2.1LabelWeb控件作用:用来显示文字。语法:ASP:LabelId=控件名称Runat=ServerText=控件上要显示的文字/或ASP:LabelId=控件名称Runat=Server所要显示的文字/ASP:Label示例:%PageLanguage=C#Htmlscriptrunat=servervoidPage_Load(objectsender,System.EventArgse){Label1.Text=这是一个Label控件;}/scriptbodyASP:Labelid=Label1Runat=Server//body/Html4.2.2button控件作用:在Web窗体页上显示普通按钮(Button)控件。语法:asp:Buttonid=控件idText=控件上显示的文字CommandName=命令名CommandArgument=commandargumentCausesValidation=true|falseOnClick=函数名runat=server/功能:有两种类型的功能,第一可以创建“提交”按钮,第二可以创建“命令”按钮。示例1(完成提交功能):%PageLanguage=C#htmlheadscriptrunat=servervoidSubmitBtn_Click(Objectsender,EventArgse){Message.Text=HelloWorld!!;}/script/headbodyfontsize=2点击提交按钮/fontformrunat=serverasp:Buttonid=SubmitBtnText=提交OnClick=SubmitBtn_Clickrunat=server/asp:labelid=Messagerunat=server//form/body/html示例2(完成命令功能):%PageLanguage=C#htmlheadscriptrunat=servervoidRepeater1_ItemCommand(objectsender,RepeaterCommandEventArgse){lblResult.Text=b+e.CommandName+/b,b+e.CommandArgument+/b;}/script/headbodyformrunat=serverasp:Repeaterid=repeater1onitemcommand=Repeater1_ItemCommandrunat=serverItemTemplateasp:Buttonid=btnBuyText=BuyCommandName=buyCommandArgument='%#DataBinder.Eval(Container.DataItem,name)%'runat=server/asp:Buttonid=btnSellText=SellCommandName=sellCommandArgument='%#DataBinder.Eval(Container.DataItem,good)%'runat=server/asp:Labelid=lblSellerText='%#DataBinder.Eval(Container.DataItem,shortname)%'Font-Bold=truerunat=server//ItemTemplate/asp:Repeaterasp:Labelid=lblResultrunat=server//form/body/htmlprivatevoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){ArrayListarrList=newArrayList();arrList.Add(newPositionData(Jone,J,Egg));arrList.Add(newPositionData(Tom,T,Chicken));arrList.Add(newPositionData(Mary,M,Bird));repeater1.DataSource=arrList;repeater1.DataBind();}}publicclassPositionData{privatestringname;privatestringshortname;privatestringgood;publicPositionData(stringname,stringshortname,stringgood){this.name=name;this.shortname=shortname;this.good=good;}publicstringName{get{returnname;}}publicstringShortname{get{returnshortname;}}publicstringGood{get{returngood;}}}4.2.3Image控件作用:用来显示图片。语法:ASP:ImageId=控件名称Runat=ServerImageUrl=图片所在地址AlternateText=图形还没加载时所替代的文字ImageAlign=NotSet|AbsBottom|AbsMiddle|BaseLine|Bottom|Left|Middle|Right|TextTop|Top/4.2.4HyperLink控件作用:用来设定超级链接,就是HTML元素的A标注。语法:ASP:HyperlinkId=控件IdRunat=ServerText=超级链接文字或小提示文字ImageUrl=图片所在地址Target=超级链接所要显示的窗口/或ASP:HyperlinkId=控件名称Runat=ServerImageUrl=图片所在地址Target=超级链接所要显示的窗口/超级链接文字/ASP:Hyperlink4.2.5LinkButtonWeb控件作用:功能和ButtonWeb控件一样,不同之处在于它是类似超级链接的文字接口。LinkButton必须写在Form和/Form之间,也要指定OnClick属性才会动作。语法:ASP:LinkButtonId=控件名称Runat=ServerText=按钮上的文字Command=命令名称CommandArgument=命令参数OnClick=事件程序名/或ASP:LinkButtonId=控件IdRunat=ServerCommand=命令名称CommandArgument=命令参数OnClick=事件程序名/按钮上的文字/ASP:LinkButton示例:%PageLanguage=C#HtmlFormId=Form1Runat=ServerASP:LinkButtonId=LB1Text=点击我OnClick=LB1_ClickRunat=Server/pASP:LabelId=L1Text=现在是ARunat=Server//FormScriptRunat=ServervoidLB1_Click(ObjectSender,Eventargse){L1.Text=现在是B;}/Script/Html4.2.6ImageButtonWeb控件作用:用图片来当做按钮。语法:ASP:ImageButtonId=控件名称Runat=ServerCommand=命令名称CommandArgument=命令参数OnClick=事件程序名/示例:%PageLanguage=C#HtmlFormId=Form1Runat=ServerASP:ImageButtonId=Button1ImageUrl=abc.jpgOnclick=Button1_ClickRunat=Server/pASP:LabelId=Label1Runat=Server//FormScriptRunat=ServervoidButton1_Click(ObjectSender,ImageClickEventArgse){Label1.Text=你所要看的图片是+e.X.ToString()+,+e.Y.ToString()+的位置按下鼠标;}/Script/Html4.2.7TextBoxWeb控件作用:TextBoxWeb控件和InputType=Text、InputType=Password以及TextArea这三个HTML元素功能相似,都是用来接收键盘键入的数据;不过TextBox可以用来取代上述三种HTML元素。语法:ASP:TextBoxId=控件名称Runat=ServerAutoPostBack=True|FalseColumns=字符数目MaxLength=字符数目Rows=列数Text=字符串TextMode=SingleLine|Multuline|Password//默认值为SingleLineWrap=True|FalseOnTextChanged=事件程序名称/示例:%PageLanguage=C#HtmlFormId=Form1Runat=Server这是一般输入框SingleLine:ASP:TextBoxId=T1TextMode=SingleLineRunat=Server/br这是密码输入框Password:ASP:TextBoxId=T2TextMode=PasswordRunat=Server/br这是多行输入框Multuline:ASP:TextBoxId=T3TextMode=MultilineRows=3Runat=Server/br/Form/Html4.2.8TableWeb控件、TableRowWeb控件及TableCellWeb控件TableWeb控件语法:ASP:TableId=控件名称Runat=ServerBackImageUrl=URLCellSpacing=像素CellPadding=像素GridLines=Both|Hor