8、DropDownList : 單選下拉框,你有兩種方法可以增加下拉框中的選擇項,一種和傳統(tǒng)的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>
另一種方法是和數(shù)據(jù)綁定,如下:
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();
這兩種法法你可以任意選擇,我個人覺得后一種方法比較實用,尤其是當遇到用數(shù)據(jù)庫中得到的數(shù)據(jù)來做下拉框選項時。
9、HyperLink : 超連接,但和HTML的<a href>不同的是HyperLink作為一個服務器端控制,具有Text 和 NavigateUrl兩個屬性,并且可以用數(shù)據(jù)綁定的方法來定義,下面我列出兩種定義方法: 方法一:
<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, 現(xiàn)在你可以實時改變圖片了,例子我就不給了。
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>
<asp:Label id=Label3 font-bold="true" Text="" runat="SERVER"/>
</form>
</body> </html>
運行一下,你看到了什么?是比爾.蓋茨傻兮兮的一張笑臉,你如果點中他的眼睛和鼻子,就會告訴你你點中了哪兒,如果你點中他的嘴,他會伸一下舌頭,當然,這些只是根據(jù)你鼠標點中的相對位置來判斷相應的操作而已,但你別忘了這只是簡單的一個ImageButton就能夠做到的功能呀。
12、Label , 前面的例子已經(jīng)講過了,是一個服務器端文本控制,它只有一個屬性:Text , 你可以動態(tài)改變它。
13、LinkButton :有一種服務器端按鈕控制,它的外形象HyperLink , 屬性也相同,但不同的是它可以提交表單,同其他兩種button控制一樣。
14、ListBox , 列表框,它和下拉框一樣,也有兩種方式定義選項,一種是直接列表,另一種是數(shù)據(jù)綁定,我就不再贅述了。
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種服務
|