[注]大部分源码拷贝自《ASP.NET程序设计实用教程》 控件 前言: ASP.NET支持三种控件:Web服务器端控件,HTML服务器端控件和用户自定义控件. Web服务器控件是.NET推荐使用的控件,Web服务器端控件除了常用的输入输出控件以外,还包括验证控件. ASP.NET页面的处理过程 当用户通过客户端浏览器发出一个对ASP.NET页面的请求后,Web服务器交由ASP.NET引擎来处理. 页面是否已经被编译成DLL.若在输出缓冲中找不到此页面或找不到编译过的DLL文件,则将此页面转换成源代码,然后由编译器将其编译成DLL文件. 如果找到了编译过的DLL文件,则省略了编译的步骤,而是直接利用编译过的DLL文件建立对象,将执行结果返回到客户端浏览器.所以在执行的时候,ASP.NET文件第一次被调用的时候非常慢,但是以后调用就很快了.(这也正是ASP.NET的一个很大的优点) 1.理解服务器端控件:包含runat=server/> 2.页面事件: Page_Load();在页面被加载自动调用. 控件事件:由用户在客户端浏览器上触发的各种事件. Page_Unload();当页面从内存中卸载的时候调用. 附:用IsPostBack为真表示页面被执行过. 3.页面指示符 指示符 说明 @Page 定义页面特性,只能在.aspx文件中 @Control 定义用户控件特性。只能在.ascx文件中 @Import 导入名字空间,使用名字空间中定义的类 @Implements 指定当前页面实现的.NET框架接口 @Register 用来注册用户控件 @Assembly 用来引用.NET组件 @OutputCache 用来设置输出缓冲的特性 @Reference 定义当前页运行时要动态编译和连接的页面和用户控件 4.HTML服务器端控件 实例一: HTMLANCHOR控件. <% @ Page Language="C#" %> <script language="C#" runat="server"> void Page_Load(object sender, EventArgs e) { anchor1.InnerText="北京大学"; anchor1.HRef="http://www.pku.edu.cn"; anchor1.Target="_blank"; // 在新的无标题窗口加载链接 } </script> <a id="anchor1" runat="server"></a> 实例二:hmtlimage控件: <% @ Page Language="C#" %> <form runat="server"> <img id="imgsixAge" src="myimage.jpg" width ="300" height="200" runat="server"/> </form> 实例三: HtmlInputFile控件 <% @ Page Language="C#" %> <script language="C#" runat="server"> void UploadBtn_Click(Object sender,EventArgs e){ if (UpFile.PostedFile!=null) { // 显示上传文件的文件名、文件类型和文件大小 FileName.InnerHtml=UpFile.PostedFile.FileName; FileType.InnerHtml=UpFile.PostedFile.ContentType; FileLength.InnerHtml=UpFile.PostedFile.ContentLength.ToString(); FileDetails.Visible=true; //取文件名 string myDir=UpFile.PostedFile.FileName; int mypos=myDir.LastIndexOf("\\"); string myFileName=myDir.Substring(mypos); // 保存上传的文件 string mySavePath=Server.MapPath(".")+ myFileName; SaveDir.InnerHtml=mySavePath; UpFile.PostedFile.SaveAs(mySavePath); } } </script> <form method="post" enctype="multipart/form-data" runat="server"> 选择要上传的文件: <input id="UpFile" type="file" runat="server"> <input type=submit value="上传" OnServerclick="UploadBtn_Click" runat="server"><br><br> <div id="FileDetails" Visible=false runat="server"> <b>原文件名:</b><span id="FileName" runat="server"/><br> <b>上传到服务器:</b><span id="SaveDir" runat="server"/><br> <b>文件类型:</b><span id="FileType" runat="server"/><br> <b>文件大小:</b><span id="FileLength" runat="server"/>字节<br> </div></form> 5.Web 服务器端控件 实例一: 使用文本、标签 <% @ Page Language="C#" %> <script language="C#" runat="server"> void txtUid_TextChanged(Object sender, EventArgs e){ lblUid.Text = txtUid.Text; } </script> <form runat="server"> <b>用户名:</b> <asp:TextBox id="txtUid" OnTextChanged="txtUid_TextChanged" runat="server"/><br> <b>您的用户名为:</b> <asp:Label id="lblUid" runat="server"/> </form> 实例二:图像控件 <form runat="server"> <asp:Image id="stars" runat="server" ImageAlign="left" width="300" height="200" ImageUrl="myimage.jpg"/> </form> 实例三:超级链接 <asp:HyperLink id="hyperLink1" ImageUrl="bjtu.jpg" NavigateUrl="http://press.bjtu.edu.cn/" Text="北京交通大学出版社" Target="_blank" runat="server"/> </body> 实例四:下拉列表控件 <% @ Page Language="C#" %> <script language="C#" runat="server"> void Image_Changed(Object Sender, EventArgs e) { lblUid.Text = lstAddr.SelectedItem.Value; } </script> <form runat="server"> 选择你要去的城市: <asp:DropDownList id="lstAddr" AutoPostBack="True" OnSelectedIndexChanged="Image_Changed" runat="server"> <asp:ListItem value="北京" selected="true">北京</asp:ListItem> <asp:ListItem value="上海">上海</asp:ListItem> </asp:DropDownList> <asp:Label id="lblUid" runat="server"/> </form> 实例五:列表控件 <% @ Page Language="C#" %> <script language="C#" runat="server"> protected void Page_Load(Object sender, EventArgs e){ // 若是第一次访问,则往列表框中填充数据 if (!IsPostBack) { this.Loves.Items.Add(new ListItem("唱歌","Singing")); this.Loves.Items.Add(new ListItem("跳舞","Dancing")); this.Loves.Items.Add(new ListItem("划船","bowing")); this.Loves.Items.Add(new ListItem("睡觉","Sleeping")); } } void SubmitBtn_Click(Object sender, EventArgs e) { string s="我的爱好是:"; for (int i=0;i<Loves.Items.Count;i++) { if (Loves.Items[i].Selected) { s+=Loves.Items[i].Text+" "; } } Label1.Text=s; } </script><form runat=server> 你的爱好列表为:<br> <asp:ListBox id="Loves" Rows="5" Width="100px" SelectionMode="Multiple" runat="server"> </asp:ListBox> <asp:button id="Submit" Text="提交" OnClick="SubmitBtn_Click" runat="server" /> <asp:Label id="Label1" Font-Name="Verdana" Font-Size="10pt" runat="server"/> </form 实例六:单选和复选 <% @ Page Language="C#" %> <script language="C#" runat="server"> void SubmitBtn_Click(Object sender, EventArgs e) { Message.Text="<h4>您的性别和爱好是:</h4>"; if (Male.Checked) Message.Text+="<b>性别</B>:男<br>"; if (Female.Checked) Message.Text+="<b>性别</B>:女<br>"; Message.Text+="<b>爱好:</b>"; if(Football.Checked) Message.Text+="足球 "; if(Tour.Checked) Message.Text+="旅游 "; if(Chess.Checked) Message.Text+="围棋 "; } </script> 实例七:表格控件. <% @ Page Language="C#" %> <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { // 从选择列表获得行数 int numrows = Convert.ToInt32(TabRows.SelectedItem.Text); // 从选择列表获得列数 int numcells = Convert.ToInt32(TabCells.SelectedItem.Text); // 动态生成表格行和列 for (int j=0; j<numrows; j++) { TableRow r=new TableRow(); for (int i=0; i<numcells; i++) { TableCell c=new TableCell(); c.Controls.Add(new LiteralControl("行"+j.ToString()+",列"+i.ToString())); r.Cells.Add(c); } DyTab.Rows.Add(r); } } </script> <h3><font face="Verdana">动态生成表格</font></h3> <form runat="server"> <asp:Table id="DyTab" CellPadding=5 CellSpacing=0 Border="1" BorderColor="black" runat="server" /> <p> 行数: <asp:DropDownList id="TabRows" runat="server"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> </asp:DropDownList> <br> 列数: <asp:DropDownList id="TabCells" runat="server"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> </asp:DropDownList> <asp:Button Text="创建" runat="server"/> </form> 实例八:文本控件(Literal控件) <form runat="server"> <asp:Literal id="Literal1" Text="我是中国人,我深爱着自己的祖国!" runat="server"/> </form> 实例九: PlaceHolder控件(容器) <% @ Page Language="C#" %> <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e){ Literal literal1=new Literal(); literal1.Text="<b>你好!</b>"; PlaceHolder1.Controls.Add(literal1); Button button1=new Button(); button1.Text="按钮"; PlaceHolder1.Controls.Add(button1); } </script> <form runat="server"> <asp:PlaceHolder id="PlaceHolder1" runat="server"/> </form> AdRotator控件: AdRotator控件用于制作广告条。AdRotator控件在每次打开或重新加载网页时在页面上放置一幅新的广告。 显示的广告取决于AdRotator配置文件。AdRotator配置文件。该文件是一个XML格式的文件,包含显示图像和链接信息显示频率

评论