[ASP.NET笔记] 3.ASP.NET的运行模型

             1:Page类
             2:Asp.net控件的分类
             3:页面之间的跳转,及传值
             4:如何用url查询字符串传递汉字
             5:设置控件成为焦点,设置WebForm窗体的默认按钮
             
           

                    Page类
            一个asp.net应用程序中的每一个页面都是继承自Page类。
            1)通过IsPostBack判断一个页面是否第一次被加载
                    在页面加载的是否我给Text2.Text=“3”值成功
                    当我手动输入“4”的时候 再点Button却取的还是“3”
                    如果在加载的时候不设置Text2.Text=“3” 则去取值正确。
                    不知道是TextBox问题还是Button问
            2)通过RegisterClientScriptBlock注册客户端的js
            3)通过Page_Load事件进行数据的初始化
            4)Page事件的工作原理:
                在asp.net中有两种事件。一种是客户端事件,这种事件由客户端触发,由客户端处理。  
                比如:onmoseover,onmouseout等。另外一种事件是服务器端事件,这种事件是由Page类
                所产生的。这种事件的特点是:由客户端触发,但客户端不处理,直接交由服务器端来处理
                比如:按钮的单击事件,可见如果引发了服务器端事件,页面一定会提交到服务器。我们以                  后把这个过程被称为:"页面的回传",注意回传是客户端到服务器的

            5)Page页面的处理过程:
               A)页面发生了回传,客户端会把当前页面的控件状态(ViewState)会发给服务器端
               B)服务器重新加载页面,此时页面的状态与设计时的状态一致
               C)服务器把从客户端接受过来的ViewState数据状态赋给加载的页面,此时
                 页面的控件状态与客户端发生回传时的控件状态一致
               D)触发页面Page_Load事件
               E)回传事件处理
               F)页面返回给客户端
           举例:
             1)定义一个变量,在一个按钮里面改变值,在另外一个按钮里面显示值               
             2)加上一个textbox控件,在试一试。从中体会ViewState的作用
            
             
                  Asp.net控件的分类
              从大体的方面Asp.net控件大致上分成两类。
                1:Web控件          2:html控件
                         Web控件与html控件的区别
             1)Web控件是运行在服务器端,而html控件是运行在客户端的       
             2)Web控件是运行在服务器端,经IIs解析成html控件后在客户端来显示
             3)Web控件的标记是<asp         runat="server">来标识
             4)html控件很容易变成Web控件[单右-->作为服务器控件运行]
             5)asp.net里面之所以有Html控件,是照顾到以前asp
             6)html控件适合于客户端编程,而web控件适合于服务器端编程   
             7)为了减轻服务器的负荷,应该尽可能使用html控件  
             8)如果在一个模态窗体中加入Web服务器控件,每次页面回传时,都会弹出一个新窗口,
               为了避免这种情况,可以在模态窗体的<head>与<head>之间加入<base target="_self"/>       
              举例:思考用那种类型的控件
                 1)用户输入两个数,求和[用文本框]
                 2)让用户输入一些信息,添加到数据库[用文本框]

              

        页面跳转

                如何实现从一个页面跳转到另外一个页面,以及页面的传值              
                     1)HyperLink控件:
                         特点:不能传递Web控件的值,但是可以传递Url查询字符串,需要用户控制
                         方法:设置NavigateUrl方法。比如:2.aspx?a=4&b=5
                         接受:Request.QueryString["变量名"]
                     2)Response.Redirect:
                         特点:不能传递Web控件的值,但是可以传递Url查询字符串,不需要用户控制
                               比如:从a页面跳到b页面,然后由b页面自动跳到C页面
                               也可以通过Url查询字符串来传递控件的值。比如:
                                Response.Redirect("2.aspx?xm="+ this.txtUser.Text);
                         方法:Response.Redirect("目标网页?url查询字符串")。
                               比如:Response.Redirect("2.aspx?a=3&b=4")
                          接受:Request.QueryString["变量名"]
                     3)Server.Transfer:
                        特点:可以传递Web控件的值,也可以传递Url查询字符串,不需要用户控制
                        方法:Server.Transfer("目标网页?url查询字符串")。           
                        接受:Request.QueryString["变量名"]或Request.Form["txtUser"]授受控件的值                      4)跨网页公布:
                        特点:可以传递控件,当然可以传递控件的一切属性,需要用户控制,更加灵活
                        方法:在拥有"PostBackUrl"属性上指定目的网页。一般为按钮
                         授受:if (PreviousPage != null)  PreviousPage.FindControl("控件名");
                     举例:
                     1)源页面:选择一个部门。在目的页面里面显示该部门的全部职工
                     2)源页面:输入用户名密码。在目的页面里面检验用户名密码是否正确(不经过数据库)
                 
                  
                                如何用url查询字符串传递汉字
             在通过rul查询字符串传递汉字时,有时候会发现传递的值和接收到的内容不符或者变成一堆乱             码。这样就可以在传递之前把汉字进行编码。之后再解码
                   编码:Server.UrlEncode("汉字")
                   解码:Server.UrlDecode("汉字")
                    
                     设置控件成为焦点,设置WebForm窗体的默认按钮
                     在<form> 标签中声明
                     语法:
                      <form   defaultbutton="Button1" defaultfocus="TextBox1">

你可能感兴趣的:(asp.net)