asp+中文教程(四)-- 服务器端控制(二)
点击次数:14 次 发布日期:2008-11-27 00:46:08 作者:源代码网
|
<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种服务 源代码网供稿. |
