正文

[asp.net]控件(Control)学习笔记2006-09-01 17:36:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bakers/18073.html

分享到:

[注]大部分源码拷贝自《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+"&nbsp;&nbsp;";       }    }    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+="足球&nbsp;&nbsp;";     if(Tour.Checked) Message.Text+="旅游&nbsp;&nbsp;";     if(Chess.Checked) Message.Text+="围棋&nbsp;&nbsp;"; } </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格式的文件,包含显示图像和链接信息显示频率

阅读(10473) | 评论(4)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册