欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  Web 编程基础
 
  Web应用程序会让Web服务器给客户机发送HTML代码
 
  ASP.NET技术可用于动态创建带有服务器端代码的Web页面
 
  ?
 
  ASP.NET 运行库
 
  使用ASP.NET在客户系统上创建Web应用程序,只需要浏览器不需要安装。NET
 
  在服务器系统上,需要ASP.NET运行库
 
  ?
 
  创建简单的Web页面
 
  下面是一些主要Web服务器控件,以及返回的HTML代码
 
  服务器控件?HTML
 
  Label<span>
 
  Literalstatic text
 
  TextBox<input type="text">
 
  Button<input type= "submit">
 
  LinkButton?<a href="javascript: __dopostback()>
 
  ImageButton?<input type="image">
 
  HyperLink?<a>
 
  DropDownList?<select>
 
  ListBox<select size="">
 
  CheckBox?<input type= "checkbox">
 
  RadioButton?<input type="radio">
 
  Image<img src="">
 
  Calendar?<table>
 
  TreeView?<div><table>
 
  ?
 
  事件处理程序
 
  可以添加事件处理程序,在服务器上给Web服务器控件调用
 
  例如Button控件可以包含Click事件
 
  只有进行回送时,才在服务器上触发事件
 
  用控件的新值来验证其旧值是由ViewState完成的
 
  ViewState是一个隐藏字段,会同页面内容一起发送给浏览器
 
  页面发送给客户端时,ViewState包含与窗体中控件相同的值
 
  给服务器回送时,ViewState会和新值一起发送给服务器,用来验证值是否改变和其他处理
 
  Button控件属性PostbackUrl,定义了从当前页发送到的网页的URL
 
  例如:
 
  <asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="——/1.aspx" />
 
  目标页的Page类的属性PreviousPage,会返回一个Page对象
 
  使用PreviousPage的FindControl()方法来访问源页面的控件
 
  例如:
 
  Label1.Text = ((TextBox)PreviousPage.FindControl("TextBox1"))。Text;
 
  由于FindControl()方法返回的是一个Control对象,所以要强制转换
 
  ?
 
  输入的有效性验证
 
  使用ASP.NET的验证控件,能进行客户端和服务器检查
 
  所有验证控件:
 
  RequiredFieldValidator
 
  计算输入控件的值以确保用户输入值
 
  当验证执行时,如果输入控件包含的值仍为初始值而未更改,则该输入控件验证失败
 
  默认情况下,初始值为空字符串 (""),这指示必须在输入控件中输入值方可通过验证
 
  RangeValidator
 
  计算输入控件的值,以确定该值是否在指定的上限与下限之间
 
  可以检查数字对、字母对和日期对限定的范围
 
  RegularExpressionValidator
 
  计算输入控件的值,以确定该值是否与某个正则表达式所定义的模式相匹配
 
  通过这种类型的验证,可以检查可预知的字符序列,如电子邮件地址
 
  CompareValidator
 
  将输入控件的值同常数值或其他输入控件的值相比较,以确定这两个值是否与由比较运算符(小于、等于、大于等等)指定的关系相匹配
 
  CustomValidator
 
  计算输入控件的值以确定它是否通过自定义的验证逻辑
 
  可以创建服务器端验证函数,请为执行验证事件提供处理程序
 
  ValidationSummary
 
  显示 Web 页上所有验证错误的列表
 
  ?
 
  状态管理
 
  有几种方式可以把一些客户端信息从一个页面传送给另一个页面
 
  它们主要区别是:状态是存储在客户端还是服务器上
 
  状态类型?存储说明
 
  ViewState?客户端只在一个页面中
 
  Cookie客户端
 
  Session服务器会话状态
 
  Application?服务器应用程序状态在所有客户端上共享
 
  Cache服务器高速缓存
 
  客户端的状态管理
 
  ViewState
 
  服务器通过ViewState来判断初始值和新值是否有区别,来判断值是否有修改
 
  缺点是这样增加了网络流量
 
  可以在Page指令中把EnableViewState属性设置为false来关闭它
 
  可以通过设置控件的EnableViewState属性来配置控件的ViewState值
 
  而且控件的EnableViewState配置优先级高于页面的配置
 
  可以使用索引符自定义一个ViewState值
 
  例如:
 
  定义一个ViewState值:
 
  ViewState["mydata"] = "my data";
 
  读取存储的ViewState值:
 
  string mydata = (string)ViewState["mydata"];
 
  在发送给客户端的HTML代码中,ViewState储存在一个隐藏的字段中
 
  ViewState只能保存到一个页面中
 
  cookie
 
  cookie在HTTP头中定义,使用HttpResponse类可以把cookie发送给客户端
 
  Response是Page类的一个属性,返回一个HttpResponse类型的对象
 
  HttpResponse类定义了返回HttpCookieCollection的Cookies属性
 
  使用HttpCookieCollection可以给客户端返回多个cookie
 
  例如:
 
  HttpCookie cookie = new HttpCookie("mycookie");
 
  cookie.Values.Add("mystate", "myval");
 
  cookie.Expires = DateTime.Now.AddMonths(3);
 
  Response.Cookies.Add(cookie);
 
  说明:
 
  创建并命名新的Cookie
 
  向Cookie添加键值
 
  通过Expires属性获取或设置Cookie的过期日期和时间
 
  使用Response发送这个Cookie
 
  通过访问HttpRequest对象中的cookie集合读取cookie
 
  例如:
 
  HttpCookie cookie = Request.Cookies["mycookie"];
 
  string myval = cookie.Values["mystate"];
 
  服务器端的状态管理
 
  使用客户端状态的缺点是增加了数据在网络之间的传送
 
  使用服务器状态的缺点是服务器必须给其客户端分配资源
 
  Session
 
  可以在Global Application类中定义在会话开始或结束时运行的代码
 
  在新的Global Application类中会创建global.asax文件
 
  在Session_Start()事件处理程序中,可以初始化会话变量
 
  例如:
 
  void Session_Start(Object sender, EventArgs e) {
 
  ? // Code that runs on application startup
 
  ? Session["mydata"] = 0;
 
  }
 
  Session可以存储在HttpSessionState对象中
 
  使用Page类的Session属性来访问和设置
 
  例如:
 
  int val = (int)Session["mydata"];
 
  val += 4;
 
  Session["mydata"] = val;
 
  Application
 
  使用应用程序状态可以使数据在多个客户端共享
 
  通过Page类的Application属性访问它
 
  可以在global.asax文件的Application_Start()事件处理中初始化Application变量
 
  例如:
 
  void Application_Start(Object sender, EventArgs e) {
 
  ? // Code that runs on application startup
 
  ? Application["userCount"] = 0;
 
  }
 
  在改变Application变量之前,由于多个用户可以同时访问,必须用Lock()方法锁定
 
  在修改变量之后必须用Unlock()方法,而且锁定和解锁之间要非常短
 
  例如:
 
  void Session_Start(Object sender, EventArgs e)
 
  {
 
  ? // Code that runs when a new session is started
 
  ? Application.Lock();
 
  ? Application["userCount"] = (int)Application["userCount"] + 1;
 
  ? Application.UnLock();
 
  }
 
  读取Application中的数据:
 
  Label1.Text = Application["userCount"].ToString();
 
  不应该在Application中储存太多数据
 
  Cache
 
  高速缓存(Cache)是服务器端状态,在所有客户端上共享
 
  不同于Application,Cache有多种方式定义状态何时失效
 
  例如:
 
  给Cache添加对象:
 
  Cache.Add("mycache", myobj, null, DateTime.MaxValue, TimeSpan.FromMinutes(10), CacheItemPriority.Normal, null);
 
  参数:
 
  key?用于引用该项的缓存键
 
  value?要添加到缓存的项
 
  dependencies?该项的文件依赖项或缓存键依赖项
 
  当任何依赖项更改时,该对象从缓存中移除。如果没有依赖项,则此参数包含空引用
 
  absoluteExpiration?所添加对象将过期并被从缓存中移除的时间
 
  如果使用可调过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。
 
  slidingExpiration?最后一次访问所添加对象时与该对象过期时之间的时间间隔
 
  如果该值等效于20分钟,则对象在最后一次被访问20分钟之后将过期并从缓存中移除。
 
  如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration。
 
  priority?定义了高速缓存的优先级,由 CacheItemPriority 枚举表示
 
  在删除高速缓存项时,优先级较低的项先删除
 
  onRemoveCallback?在从缓存中移除对象时所调用的委托
 
  当从缓存中删除应用程序的对象时,可使用它来通知应用程序。
 
  返回值
 
  如果该项先前存储在Cache中,则为Object,否则为null
 
  当返回的对象不是null时,就可以进行类型转换,并用于储存高速缓存项
 
  例如:
 
  object o = Cache["mycache"];
 
  if (o == null)
 
  {
 
  ? // Reload the cache.
 
  }
 
  else
 
  {
 
  ? // Use the cache.
 
  ? MyClass myObj = (MyClass)o;
 
  ? //…
 
  }
 
  ?
 
  身份验证和授权
 
  对于Web应用程序,最常用的身份验证技术是Forms身份验证
 
  安全控件 --> Membership API --> 成员提供程序
 
  身份验证的配置
 
  使用安全控件
 
  安全控件说明
 
  Login?复合控件,创建使用户登录网站的界面
 
  LoginStatus根据用户是否登录,并切换某个链接的状态
 
  LoginName在网页上显示经过身份验证的用户的名称
 
  LoginView根据指定用户的身份验证状态使用模板显示不同的内容
 
  PasswordRecovery?复合控件,创建使用户重新设置密码的界面
 
  ChangePassword复合控件,创建使用户可以更改其网站密码的界面
 
  CreateUserWizard?一个向导,创建新用户,把信息写入
 
  使用Login控件
 
  添加一个Login控件,可以看到源码是:
 
  <asp:Login ID="Login1" runat="server"></asp:Login>
 
  可以使用DisplayRememberMe属性来设置是否显示复选框使用户可以控制是否发送Cookie
 
  为了可以编辑样式,可以选择智能标记选择“转换为模板”来编辑
 
  使用CreateUserWizard控件
 
  CreateUserWizard控件是一个向导,其步骤可以在设计器中配置
 
  控件的智能标记可以分别配置每个步骤
 
  ?
 
  读写SQL Server数据库
 
  在服务器资源管理器中,可以添加数据库连接或者添加新的数据库
 
  显示数据
 
  利用数据控件可以显示、编辑数据
 
  数据控件包括:数据视图和数据源控件
 
  数据源控件与数据源关联在一起,数据视图与数据源连接来表示数据
 
  数据控件?说明
 
  GridView?用行和列来显示数据
 
  DataList?在一列显示所有的项
 
  DetailsView?用于显示单个记录,一行表示一个字段,通常与GridView组合使用
 
  FormView?显示数据源中的一行
 
  Repeater?为数据源中的每个项重复相应布局
 
  数据源控件说明
 
  SqlDataSource访问位于关系数据库中的数据
 
  AccessDataSource?表示一个使用Access数据库的数据源控件
 
  ObjectDataSource?允许把。NET类用作数据源
 
  XmlDataSource控件使得XML数据可用于数据绑定控件
 
  SiteMapDataSource?使用XML文件定义站点结构,创建到该网站的链接和引用?

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h59891.shtml